gpt4 book ai didi

ruby - 在 Ruby 中, `Float(...)` 记录在哪里?

转载 作者:数据小太阳 更新时间:2023-10-29 07:48:02 25 4
gpt4 key购买 nike

在 Ruby 语言中,您可以像调用函数一样调用 Float,以确保参数是 Float 或可解析为 float 的字符串(包括科学记数法等)。

例如:

Float(1.0)     # => 1.0
Float('1.0') # => 1.0
Float('-1.23') # => -1.23
Float('-1e+2') # => -100.0

但是,Ruby 文档似乎没有在任何地方描述这种行为(Float v2.1.0Float v1.9.3)。

在哪里可以找到此功能的文档?

最佳答案

这里定义了Kernel#Float .此函数是 ruby​​ 提供的内置转换函数(Avdi Grimm 创造的术语)的一部分。

您真的非常想将输入对象转换为核心类型,无论原始类型是什么。例如,您需要确保任何输入都被强制转换为 Integer,如果有的话这样做的合理方式——无论传入数据是 Float、nil 还是十六进制字符串。"Confident Code, Avdi Grimm。

例如,使用 Kernel#Array转换函数,想象一个接受 0 、 1 或更多帖子的方法。

  def process_post(post_or_posts)
posts = Array(post_or_posts)
posts.each do |post|
.... # do something post
end
end

这在调用具有不同输入的方法时提供了一些灵 active :

 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

这一系列函数当然可以方便地创建灵活的 API。

关于ruby - 在 Ruby 中, `Float(...)` 记录在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21895484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com