"在方法的参数列表中表示什么?-6ren"> "在方法的参数列表中表示什么?-def wait_for_element_present(element) wait = Selenium::WebDriver::Wait.new(:timeout => 30); -6ren">
gpt4 book ai didi

ruby - 在 Ruby 中,符号 "=>"在方法的参数列表中表示什么?

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

def wait_for_element_present(element)
wait = Selenium::WebDriver::Wait.new(:timeout => 30);
wait.until{driver.find_element(element)};
end

请看一下上面的Ruby代码,我有两个问题:

(1) 至于“Selenium::WebDriver::Wait.new(:timeout => 30)”,这里的“=>”是什么意思?我知道“:timeout”是一个 ruby​​ 符号,但是当使用它后跟一个“=>”和一个值“30”时,我感到困惑。这是关于 ruby 符号的某种技巧吗?

(2)我们在定义hash的时候也有符号“=>”吧?喜欢:

cars = {
'altima' => 'nissan',
'camry' => 'toyota',
'rx7' => 'mazda'
}
puts cars['rx7'] => mazda

这里的“=>”和问题(1)的意思一样吗?

我是 ruby​​ 新手,如有任何意见,我们将不胜感激。提前致谢!

最佳答案

是的,意思是一样的。在这两种情况下,它都是哈希的定义。 Ruby 允许省略散列文字的大括号,如果它是方法签名中的最后一个参数。

例子:

def my_method a, b, h
puts a
puts b
puts h
end


my_method(1, 2, :timeout => 30)
# my_method(1, 2, timeout: 30) # alternative syntax for ruby 1.9+
# >> 1
# >> 2
# >> {:timeout=>30}

请注意,它仅适用于哈希的最后一个参数。如果末尾有多个散列,则必须对除最后一个以外的所有散列使用正常形式(带花括号)。

关于ruby - 在 Ruby 中,符号 "=>"在方法的参数列表中表示什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12178631/

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