sách gpt4 ai đã đi

ruby 嵌套哈希

In lại 作者:塔克拉玛干 更新时间:2023-11-03 06:31:48 25 4
mua khóa gpt4 Nike

我只是有一个简单的问题,请考虑这段代码:

class Hash
def value_for(keys, value)
common = self
while keys.size > 1 and !common.nil?
common = common[keys.shift] || { }
kết thúc
common[keys.last] = value
kết thúc
kết thúc

通过这段代码,我希望能够通过传递嵌套节点数组和应该分配的值来创建嵌套哈希。

它应该像下面这样工作:

hash = {
"message" => "hello world"
}

hash.value_for [ "nested", "message" ], "hello world"

hash
#=> {
"message" => "hello world",
"nested" => {
"message" => "hello world"
}
}

hash.value_for [ "second", "nested", "message" ], "hello world"

hash
#=> {
"message" => "hello world",
"nested" => {
"message" => "hello world"
},
"second" => {
"nested" => {
"message" => "hello world"
}
}
}

出于某种原因,我的代码在创建新哈希时不起作用。我怀疑它与 common = common[keys.shift] || 有关{}

有人可以帮帮我吗?我觉得我错过了一些愚蠢的东西......

非常感谢

1 Câu trả lời

Bạn có thể làm như sau:

class Hash
def value_for((*keys, last), value)
_h = nil
keys.inject(self){|h, k| _h = h[k] ||= {}}
_h[last] = value
kết thúc
kết thúc

关于 ruby 嵌套哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14158987/

25 4 0
Bài viết được đề xuất: Thuật toán: Tìm các phần tử xuất hiện chính xác hai lần
Bài viết được đề xuất: c - 如何理解子集和问题
Bài viết được đề xuất: 寻找可能利润的算法
Bài viết được đề xuất: algorithm - k-means 在动态规划复杂性?
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com