gpt4 book ai didi

Ruby:为什么我在使用安全导航运算符时没有得到 nil

转载 作者:太空宇宙 更新时间:2023-11-03 18:08:11 25 4
gpt4 key购买 nike

我读过关于安全运算符(operator)的内容。我的理解是,它会调用一个对象的方法,但如果该对象不存在,我们会得到 nil。

2.3.1 :001 > 123&.to_s
=> "123"

但是当我在一个不存在的对象上调用方法时尝试使用它时,我得到:

2.3.1 :003 > foo&.to_s
NameError: undefined local variable or method `foo' for main:Object
Did you mean? fork
from (irb):3
from /Users/duncan/.rvm/rubies/ruby-2.3.1/bin/irb:11:in `<main>'

我做错了什么?我是否误解了 & 运算符?

最佳答案

如果你的变量没有定义,它就不会工作。您可以使用 defined?Lazy evaluation

例子:

defined?(foo) ? foo&.to_s : nil
#=> nil
foo = 3
defined?(foo) ? foo&.to_s : nil
#=> "3"

关于Ruby:为什么我在使用安全导航运算符时没有得到 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40061306/

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