我有一个关于Ruby返回值的问题,这让我感到困惑。
我编写了一个方法,该方法将数组作为参数并将数组格式化为列表,如下所示:
def list(array)
array.each { |name, age| puts name + " is #{age} years old" }
end
Run Code Online (Sandbox Code Playgroud)
假设数组为[["Amy", 6], ["Tabitha", 5], ["Marcus", 9]]。
我希望此列表方法返回do / end块中的字符串,而不返回数组。但是,返回值始终是一个数组。
我尝试将块分配给变量并返回该变量,但是它不起作用。我也尝试用putsreturn 替换,但是在第一次迭代后退出该方法。似乎无法解决问题所在?
抱歉,这是一个非常愚蠢的问题-我之前从未遇到过。
任何输入非常感谢,谢谢!:)
你要的map不是each。map类似于each,不同之处在于它返回每个块评估的结果。each返回原始数组。另外,您的主要错误是在控制台中puts 显示某些内容,而没有其他内容。
您的最终代码为:
def list(array)
array.map { |name, age| "#{name} is #{age} years old" }
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |