gpt4 book ai didi

arrays - 将字符串添加到嵌套在哈希内部的数组中

转载 作者:太空宇宙 更新时间:2023-11-03 16:17:21 25 4
gpt4 key购买 nike

我有一组嵌套哈希。我想将字符串“Assembly”添加到与 [:dennis_ritche][:languages] 关联的数组值中

def adding_to_dennis
programmer_hash =
{
:grace_hopper => {
:known_for => "COBOL",
:languages => ["COBOL", "FORTRAN"]
},
:alan_kay => {
:known_for => "Object Orientation",
:languages => ["Smalltalk", "LISP"]
},
:dennis_ritchie => {
:known_for => "Unix",
:languages => ["C"]
}
}
programmer_hash[:dennis_ritchie][:languages] << "Assembly"
end

这是我没有将 Symbol 隐式转换为 Integer 的错误"

最佳答案

我认为您遇到的问题是您在方法内部操纵散列,结果无意中返回了错误的内容。此方法返回一个数组,因为这是最后执行的操作(<< 在数组上返回修改后的数组)。

要修复它,请定义一个进行操作的方法:

def add_to_hash(hash, programmer = :dennis_ritchie, language = 'Assembly')
hash[programmer][:languages] << language
end

让它独立于定义:

programmer_hash =
{
:grace_hopper => {
:known_for => "COBOL",
:languages => ["COBOL", "FORTRAN"]
},
:alan_kay => {
:known_for => "Object Orientation",
:languages => ["Smalltalk", "LISP"]
},
:margaret_hamilton => {
:known_for => "Apollo Program",
:languages => ["Assembly"]
},
:dennis_ritchie => {
:known_for => "Unix",
:languages => ["C"]
}
}

然后调用它来操作哈希:

add_to_hash(programmer_hash)

programmer_hash然后更新结构。

关于arrays - 将字符串添加到嵌套在哈希内部的数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40793930/

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