它在这里定义为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