gpt4 book ai didi

ruby-on-rails - 如何检查是否存在值不为 "undefined local variable or method"的变量?

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

这是一个常见的模式:如果变量不存在,我会得到一个未定义的局部变量或方法错误。

现有代码有 if variable_name.present? 但这并没有说明变量不存在。

我如何检查变量的值并说明它根本不存在?

我试过:

if (defined? mmm) then
if mmm.present? then
puts "true"
end
end

但 Ruby 仍然检查内部 mmm.present? 并在它不存在时抛出“no such variable”。

我确信对此有一个共同的模式/解决方案。

最佳答案

present? 更改为 != '' 并使用 && 运算符,它仅在第一个表达式为真时才尝试计算第二个表达式:

if defined?(mmm) && (mmm != '') then puts "yes" end

但实际上从 2019 年开始不再需要,因为以下两个工作

irb(main):001:0> if (defined? mm) then
irb(main):002:1* if mm.present? then
irb(main):003:2* p true
irb(main):004:2> end
irb(main):005:1> end
=> nil
irb(main):006:0> if (defined? mm) then
irb(main):007:1* p mm
irb(main):008:1> end
=> nil

关于ruby-on-rails - 如何检查是否存在值不为 "undefined local variable or method"的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12110235/

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