【发布时间】:2013-10-11 18:38:25
【问题描述】:
使用我提供的if 代码后,我想将:sym3 的值更改为"A"。但是,我不想通过显式更改 :sym3 的值来访问它,所以如果我确实遍历包含其他符号的其他数组,如果其中一个与其他两个不匹配,我可以这样做。
这样做的最佳方法是什么?
一旦我的 if 语句运行并且我看到其中一个键等于“B”,我想将该键的值更改为“A”
hash = {:sym1 => "A", :sym2 => "A", :sym3 => "B"}
array = [:sym1, :sym2, :sym3]
if hash.values_at(*array).count("A") == 2 and @spaces.values_at(*array).count("B") == 1
else
end
【问题讨论】:
-
符号不能有值
"A"。散列可以有一个值"A"作为一个键。 -
我不太明白这个问题。需要详细说明吗?
-
一旦我的 if 语句运行并且我看到其中一个键等于“B”,我想将该键的值更改为“A”@hirolau
-
我会这样做:hash[hash.key('B')] = 'A',但我觉得我错过了一些东西..
标签: ruby arrays hash key symbols