我的代码是:
hash = { two: 2, three: 3 }
def hash_add(hash, new_key, new_value)
temp_hash = {}
temp_hash[new_key.to_sym] = new_value
temp_hash.merge!(hash)
hash = temp_hash
puts hash
end
hash_add(hash, 'one', 1)
Run Code Online (Sandbox Code Playgroud)
在方法中,puts hash返回{ :one => 1, :two => 2, :three => 3 },但是当hash1放入方法时,它在之后保持不变.这就像赋值不在函数之外.
我想我可以返回更新的哈希并在方法之外设置我想要更改的哈希:
hash = hash_add(hash, 'one', 1)
Run Code Online (Sandbox Code Playgroud)
但我只是不明白为什么我给哈希的赋值不会超出方法.
我有这个,有效:
def hash_add(hash, new_key, new_value)
temp_hash = {}
temp_hash[new_key.to_sym] = new_value
temp_hash.merge!(hash)
hash.clear
temp_hash.each do |key, value|
hash[key] = value
end
end
Run Code Online (Sandbox Code Playgroud)
这给了我调用这个方法时我想要的东西,但是像这样重建哈希似乎有点过分了.
我有一个选择框,我想右对齐,但我想保持选项下拉框与左对齐。像这样:
<select>
<option>item</option>
</select>
Run Code Online (Sandbox Code Playgroud)
和CSS:
select { direction: rtl; }
option { direction: ltr; }
Run Code Online (Sandbox Code Playgroud)
但是,设置选择标记的方向也可以设置选择下拉菜单的方向。看这里
这有可能吗?我知道我可以替代地使用js构建自定义选择功能,但我想尽可能简化它。