arrays - 为什么我的 Ruby 方法返回一个数组而不是字符串?
问题描述
我有一个关于 Ruby 返回值的问题,这让我很困惑。
我编写了一个方法,该方法将数组作为参数并将数组格式化为列表,如下所示:
def list(array)
array.each { |name, age| puts name + " is #{age} years old" }
end
假设数组是[["Amy", 6], ["Tabitha", 5], ["Marcus", 9]]
.
我希望这个列表方法返回 do/end 块中的字符串,而不是返回数组。但是,返回值始终是一个数组。
我尝试将块分配给一个变量并返回该变量,但它不起作用。我也尝试用puts
return 替换,但在第一次迭代后退出该方法。似乎无法解决问题所在?
对不起,如果这是一个非常愚蠢的问题 - 我以前没有遇到过。
非常感谢任何输入,谢谢!:)
解决方案
你想要map
,没有each
。map
就像each
,除了它返回每个块评估的结果。each
返回原始数组。此外,您的主要错误是在控制台中puts
显示某些内容,仅此而已。
您的最终代码将是:
def list(array)
array.map { |name, age| "#{name} is #{age} years old" }
end
推荐阅读
- codeigniter - 关于 Codeigniter 成员计数?
- c - 如何仅将行号添加到文件中的特定行
- php - 在 WSL 中编译的 Windows 中运行的 PHP-Composer 无法正确识别路径
- java - 如何用限制为 0-20 的随机数填充数组
- jquery - jquery:从ajax调用填充数据以选择
- heroku-cli - How to get the authenticated users in a heroku dyno?
- c - Is there a 256-bit integer type?
- javascript - 使用谷歌应用脚本将带有图像的网页/html转换为pdf
- testing - 如何在 testcafe 命令行中提供嵌套文件夹路径?
- ios - Swift - sortTable 应立即更新视图