本教程中的练习之一是:
map
利用总是返回数组的事实:编写一个hash_keys
接受散列并对其进行映射的方法以返回线性中的所有键Array
。
解决方案是:
def hash_keys(hash)
hash.map { |pair| pair.first }
end
但是,我无法理解上述工作的原因。例如,我写了一个同样有效的解决方案:
def hash_keys(hash)
# Initialize a new array
result = Array.new
# Cycle through each element of the hash and push each key on to our array
hash.map { |x,y| result.push(x) }
# Return the array
result
end
我可以理解为什么我的方法有效,但我不理解他们提出的解决方案。例如,他们甚至没有创建 Array 对象。他们不返回任何东西。似乎他们只是列出了每个键/值元素数组中的第一个元素。