{"1"=>{"6"=>"8", "7"=>"12", "5"=>"19"}} @que-6ren">
gpt4 book ai didi

ruby - 散列值大小错误

转载 作者:太空宇宙 更新时间:2023-11-03 18:28:45 24 4
gpt4 key购买 nike

我在散列的大小函数上遇到了一些严重错误。这是不合理的行为。

这是我的哈希:

"questionnaires"=>{"1"=>{"6"=>"8", "7"=>"12", "5"=>"19"}}

@questions=evt["questionnaires"]["1"] # not really "1", that's an id but don't matter here

@questions.each do |(key,question)| # should be "6"=>"8", then "7"=>"12", ect ...
temp = question.size

结果是 1 、 2 、 2。所以这是错误,我正在测试大小,因为有时我会得到这样的数组:

不知道为什么

 "6"=>"8".size == 1, "7"=>"12".size == 2  and "5"=>"19".size == 2.

和这个数组

 "questionnaires"=>{"3"=>{"8"=>{"16"=>"16", "18"=>"18"}}}

结果正确。大小 = 2,如预期。

有什么想法吗?

最佳答案

当您像您一样拥有 (key,question) 参数时,它们会在遍历哈希时以并行分配的形式填充。因此,例如,第一次迭代 key 是“6”,question 是“8”。第二次迭代,key为“7”,question为“12”。

你问的是 question.size。但由于 question 只是一个字符串,question.size 返回字符串的长度。第一次迭代,问题 ID“8”的长度为 1 个字符。第二次迭代,问题 ID“12”的长度为 2 个字符。这就是您获得的数字的来源。

关于ruby - 散列值大小错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7173936/

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