gpt4 book ai didi

Ruby 发送没有符号

转载 作者:数据小太阳 更新时间:2023-10-29 08:16:52 26 4
gpt4 key购买 nike

是否可以不向对象发送任何内容?

让我详细说说。例如我可以有这样的东西:

val = some_stack.include?(some_val) ? some_val : nil

obj1.obj2.send(val).obj3.obj4

上面的调用不会工作,因为 nil 不是一个符号。所以解决方案是:

if val.nil?
obj1.obj2.obj3.obj4
else
obj1.obj2.send(val).obj3.obj4
end

不过我不太喜欢这个。还有其他办法吗?

最佳答案

我不知道有任何方法可以在不带任何参数的情况下返回 self(但我可能忽略了一些东西),但是你没有理由不能将一个 monkeypatch 到你所在的类中使用:

irb(main)> class Object
irb(main)> def ignore
irb(main)> self
irb(main)> end
irb(main)> end
=> nil
irb(main)> msg = nil
=> nil
irb(main)> 'hi'.send(msg || :ignore).upcase
=> "HI"
irb(main)> msg = :reverse
=> :reverse
irb(main)> 'hi'.send(msg || :ignore).upcase
=> "IH"

关于Ruby 发送没有符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3103695/

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