說,我們在交互式Ruby瀏覽器,並運行:在Ruby中,當我們命令ruby放置某些東西時,「放」什麼?
>> sometext = "Hello, Cruel World!"
>> puts sometext
Hello, Cruel World!
=> nil
>>
什麼對象是做放?我相信坐在那裏看起來「放」自己的裸體方法是「語法糖」,但我也打賭,有一些明確的名稱爲執行這些操作的「對象」......像Ruby ::自我或自我::事情還是......這是什麼?
說,我們在交互式Ruby瀏覽器,並運行:在Ruby中,當我們命令ruby放置某些東西時,「放」什麼?
>> sometext = "Hello, Cruel World!"
>> puts sometext
Hello, Cruel World!
=> nil
>>
什麼對象是做放?我相信坐在那裏看起來「放」自己的裸體方法是「語法糖」,但我也打賭,有一些明確的名稱爲執行這些操作的「對象」......像Ruby ::自我或自我::事情還是......這是什麼?
爲了說明在IRB:
2.3.0 :002 > Kernel.private_instance_methods.include?(:puts)
=> true
2.3.0 :003 > self
=> main
2.3.0 :004 > self.class
=> Object
2.3.0 :005 > self.class.ancestors
=> [Object, Kernel, BasicObject]
由於肯裏克簡在下面他的評論說,「內核是混合在一個模塊對象,它提供了一個稱爲看跌期權私有方法在Ruby中,私有方法即可。不要用明確的接收器來調用,所以當你問什麼對象在做什麼時,當你調用puts時,它就是當前對象的範圍(自我)。
在Ryby的內核中實施。更具體地說,這是從哪裏來的IO類。你可以找到更多有關此內容的文檔:http://ruby-doc.org/core-2.2.2/IO.html#method-i-puts
這是一個叫做main
特殊的對象,這是Object
一個實例,它繼承Kernel
。
謝謝。我似乎模糊地回憶起這些方面的一些東西......那個人可以輸入類似於'Kernel :: main.puts(「Hello World!」)'的東西,而且在功能上與'puts'Hello World! puts'ing「對象具體,但我不記得確切的語法... –
@sawa在他的例子中,它將是'main',但總的來說,它只是無論什麼」自我「發生。如果你在實例方法中放置''puts',那麼這個實例就會執行它。 – Max
出於某種原因,現在這個談話才浮現在我的腦海中,事實上,我可以想到的是你的問題的最佳答案。 https://www.youtube.com/watch?v=X2sgQ38UDVY&t=33m30s希望它更加清晰。
謝謝。現在我將不得不閱讀其他地方來弄清楚使用什麼區別。和::是在紅寶石。 'Kernel.puts「Hello!」'和'Kernel :: puts「Hello!」'在IRB中工作。所以,現在我知道什麼是在做所有的投入。那種東西在半夜醒來,我早上忘了它,「不管怎麼樣,'是什麼'放''弦?」我只是醒來困惑和煩躁,我不知道爲什麼:) –
@OswaldRoswell'.'只用於調用方法,'::'也可以做到這一點,但也訪問範圍常量。使用'::'進行方法調用的IMO不必要地混淆事物,應該避免。 – Max
我同意100%與@Max。更好地使用'。'並且從不爲此使用'::'。 –