以散列形式检索散列值

时间:2017-01-25 12:55:05

标签: ruby hash hashmap

我有这样的哈希:

$login_form = {
    $username => {web_element_type: :id, web_element: 'uname'},
    $password => {web_element_type: :id, web_element: 'pass'}
}

如何以最简单的方式检索$ password的web元素类型和web元素?

2 个答案:

答案 0 :(得分:1)

全局变量?

您确定需要global variables吗?

现在,哈希中的键不是字符串,符号或整数,而是变量$username$password引用的对象。这些变量是全局变量,可以从代码中的任何位置访问。对于名为password的变量,这似乎不太好。

如果这些变量未初始化,则它们都是nil,因此您的login_form实际上是:

{nil=>{:web_element_type=>:id, :web_element=>"pass"}}

$username已覆盖$password的值。

如果你确定login_form应该是一个全局变量:

$login_form = {
    username: {web_element_type: :id, web_element: 'uname'},
    password: {web_element_type: :id, web_element: 'pass'}
}

p $login_form[:password].values_at(:web_element_type,  :web_element)
#=> [:id, "pass"]
type, element = $login_form[:password].values_at(:web_element_type,  :web_element)
p type
#=> :id
p element
#=> "pass"

如果没有,您可以使用@login_formlogin_form

如果您仍然感到困惑,可以查看this

答案 1 :(得分:1)

此解决方案可以帮助您并准备好Hash

像这样定义哈希

$login_form = {
  :username => {web_element_type: :id, web_element: 'uname'},
  :password => {web_element_type: :id, web_element: 'pass'}
}

您可以像这样检索password

$login_form[:password] 

如果您有任何疑问,请告诉我。