是否可以从一个函数返回多个值?
我想将返回值传递给另一个函数,我想知道是否可以避免将数组分解为多个值
我的问题? 我正在为我的元素升级 Capybara,我意识到,感谢 CSS 'contains' selector & upgrade of Capybara , 下面的语句将不再有效
has_selector?(:css, "#rightCol:contains(\"#{page_name}\")")
我想让它以最小的努力工作(有很多这样的情况),所以我想到了使用 Nokogiri 将 css
转换为 xpath
。本来想这样写,上面的功能就可以变成
has_selector? xpath(:css, "#rightCol:contains(\"#{page_name}\")")
但由于 xpath
必须返回一个数组,所以我需要实际编写这个
has_selector?(*xpath(:css, "#rightCol:contains(\"#{page_name}\")"))
有没有办法得到以前的行为?
为了简洁起见,现在可以假定 xpath
函数如下所示。
def xpath(*a)
[1, 2]
end
最佳答案
你不能让一个方法返回多个值。为了做你想做的事,你必须改变 has_selector?
,也许是这样的:
alias old_has_selector? :has_selector?
def has_selector? arg
case arg
when Array then old_has_selector?(*arg)
else old_has_selector?(arg)
end
end
关于css - 在 Ruby 中返回多个值,用于调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21695912/