Ruby中如何使用{}形式的单行块遍历数组输出偶数
Ruby 块语法修正指南
代码语法错误定位
你写的{}形式块无法运行,主要有两个明确问题:
- 拼写偏差:代码中写的
put i缺少s后缀,Ruby对应的标准输出方法是puts - 结构冗余:
{}本身就是块的起止边界,和do...end的块闭合逻辑完全对等,块内部不需要额外编写end。你在花括号内额外添加的end没有对应的do关键字做匹配,是触发语法解析错误的核心原因。
修正后可正常运行的偶数输出实现
array = [1,2,3,4,5,6,7,8] array.each { |i| puts i if i % 2 == 0 }
运行后即可得到预期输出:2 4 6 8
最初需求(输出数组奇数)的实现
如果要反向输出数组中的奇数,仅需调整判断条件即可,对应{}形式块代码为:
array = [1,2,3,4,5,6,7,8] array.each { |i| puts i if i % 2 != 0 }
运行输出为:1 3 5 7
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

