gpt4 book ai didi

arrays - 为什么我的 Ruby 方法返回一个数组而不是字符串?

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

我有一个关于 Ruby 返回值的问题,这让我很困惑。

我写了一个方法,它接受一个数组作为参数,并将数组格式化为一个列表,如下所示:


def list(array)
array.each { |name, age| puts name + " is #{age} years old" }
end

假设数组是 [["Amy", 6], ["Tabitha", 5], ["Marcus", 9]]

我希望这个列表方法返回 do/end block 中的字符串,而不是返回数组。但是,返回值始终是一个数组。

我试过将 block 分配给一个变量并返回该变量,但它不起作用。我还尝试用 return 替换 puts 但在第一次迭代后退出该方法。似乎无法弄清楚问题是什么?

抱歉,如果这是一个非常愚蠢的问题 - 我以前没有遇到过。

非常感谢任何输入,谢谢! :)

最佳答案

您需要map,而不是eachmap 类似于 each,只是它返回每个 block 评估的结果。 each 返回原始数组。此外,您在这里的主要错误是 put display 在控制台中没有其他内容。

您的最终代码将是:

def list(array)
array.map { |name, age| "#{name} is #{age} years old" }
end

关于arrays - 为什么我的 Ruby 方法返回一个数组而不是字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56893010/

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