它在這裏定義爲Kernel#Float。此功能是由ruby提供的內置轉換功能(由Avdi Grimm創建)的一部分。
「你確實真的想將輸入對象轉換爲核心類型,無論原始類型是什麼,例如,如果有任何合理的話,你需要確保任何輸入被強制轉換爲Integer這樣做的方式 - 輸入數據是否是浮點數,零或甚至十六進制字符串。 「自信代碼,Avdi格林。
例如,使用Kernel#Array轉換函數,設想一種方法,該方法需要0個,1個或多個帖子。
process_post("post1")
process_post(["post1", "post2"])
process_post(nil)
如果我們實現這一點沒有作用,我們可能需要做這樣的事情:
def process_post(post_or_post)
if post_or_post # now we have to check for nil
# we might have to check for instance of Array to make sure we can iterate now.
# etc..
end
end
def process_post(post_or_posts)
posts = Array(post_or_posts)
posts.each do |post|
.... # do something post
end
end
這個調用便隨着輸入的方法時提供一定的靈活性這一系列功能當然非常方便創建靈活的API。
您是否在尋找[這](http://www.ruby-doc.org/core- 2.1.0/Float.html)? –
@JustinWood:不,我與之相關;我想知道'Float(...)'*函數*在哪裏被記錄。 – maerics
在任何對象中,Ruby允許你有一個名字相同的方法和常量,試探性地確定上下文使用哪一個。例如,'Nokogiri :: XML'模塊與'Nokogiri.XML()'方法不同,儘管它們似乎在相同的命名位置發生衝突。 – Phrogz