gpt4 book ai didi

javascript - nil 的 Ruby 用例,相当于 Python None 或 JavaScript undefined

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

Ruby 的nil 是如何体现在代码中的?例如,在 Python 中,当默认参数引用另一个参数时,您可以使用 None 作为默认参数,但在 Ruby 中,您可以引用 arg 列表中的其他参数(参见 this question )。在 JS 中,undefined 更会弹出,因为你根本无法指定默认参数。能否举例说明 RubyNone 是如何弹出的以及如何处理的?

我不只是在寻找使用 nil 的示例。最好是一个真实的代码片段,出于某种原因必须使用 nil

最佳答案

鲁比的 nil和 Python 的 None 在表示值缺失的意义上是等价的。然而,来自 Python 的人可能会发现一些令人惊讶的行为。首先,在 Python 引发异常的情况下,Ruby 返回 nil:

访问数组和散列:

[1, 2, 3][999] # nil. But [].fetch(0) raises an IndexError
{"a" => 1, "b" => 2}["nonexistent"] # nil. But {}.fetch("nonexistent") raises an IndexError

实例实例变量:

class MyClass
def hello
@thisdoesnotexist
end
end

MyClass.new.hello #=> nil

第二个值得注意的事实是 nil 是一个有很多方法的对象。您甚至可以将其转换为整数、 float 或字符串:

nil.to_i # 0
nil.to_f # 0.0 # But Integer(nil) or Float(nil) raise a TypeError.
nil.to_s # ""

关于javascript - nil 的 Ruby 用例,相当于 Python None 或 JavaScript undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3884004/

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