我正在用ruby进行一些watir webdriver测试,但似乎无法使用下面的代码。我想把一个可选的validation
参数传递给log_activity
方法。
def log_activity (type, *validation)
#do something
end
我将以下参数传递到方法中:
log_activity("license", 1)
我希望
validation == 1
是真的,但它是假的:puts validation.empty?
-> false
puts validation
-> 1
if validation == 1
puts "validation!!!!"
else
puts "WTF"
end
-> WTF
我做错什么了?
忘了说,我用的是Ruby1.9.3
最佳答案
*validation
是一个数组,它包含第二个参数以及之后的所有参数。假设它是一个数组,那么您看到的结果是有意义的。要检查*验证数组中的第一个元素。
或者,如果只得到一个可选参数,则可以执行以下操作:
def log_activity (type, validation=nil)
#do something
end
那么
validation
将是您传入的任何内容。关于ruby - 如何将可选参数传递给Ruby方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12374623/