如何在函数内部创建条件来测试传递给函数的变量是否已定义,如果不是,则执行命令,否则执行函数?
答案 0 :(得分:2)
像这样的东西
def your_method(parameter)
if parameter
# do something
else
puts "parameter has no value"
end
end
答案 1 :(得分:1)
你可以这样做:
def foo bar
return puts "..." unless defined?(bar) == "local-variable"
# Otherwise, continue with the method
...
end
但是,始终定义分配给给定参数的变量bar
。永远不会满足unless ...
条件。所以你的问题没有实际意义。
答案 2 :(得分:0)
(如果您正在使用Rails)请使用#try
,请参阅:https://github.com/rails/rails/blob/dd7d5b7c800b4f6d32747913fc7c8d00ce94f03a/activesupport/lib/active_support/core_ext/object/try.rb#L54
def my_function(var)
return "string here" unless try(var)
# --or--
#
# execute_whatevs unless @object.try(var)
#
# execute_whatevs(var) unless try(var)
#
# execute_something unless try(var)
#
# var.try(:execute_whatevs)
end