Ruby的用例为nil,相当于Python None或JavaScript undefined
发布时间:2020-12-17 03:58:12 所属栏目:百科 来源:网络整理
导读:Ruby的nil如何在代码中显示出来?例如,在 Python中,当引用另一个参数时,可以使用None作为默认参数,但在Ruby中,您可以引用arg列表中的其他参数(参见 this question).在JS中,undefined会弹出更多,因为您根本无法指定默认参数.你能举例说明RubyNone是如何弹出的
Ruby的nil如何在代码中显示出来?例如,在
Python中,当引用另一个参数时,可以使用None作为默认参数,但在Ruby中,您可以引用arg列表中的其他参数(参见
this question).在JS中,undefined会弹出更多,因为您根本无法指定默认参数.你能举例说明RubyNone是如何弹出的以及它是如何处理的?
我不是只想找一个使用nil的例子.优选地,它将是真实的代码片段,由于某种原因或其他原因必须使用nil. 解决方法
Ruby的
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是一个有很多方法的对象,你甚至可以将它转换为整数,浮点数或字符串: nil.to_i # 0 nil.to_f # 0.0 # But Integer(nil) or Float(nil) raise a TypeError. nil.to_s # "" 不出所料,一些Python程序员倾向于不喜欢这种宽容行为(我最初做过),但是一旦你习惯它就可以了. 我不确定这会回答你的问题,只是我的2美分. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |