如何在Ruby中替换for循环?
发布时间:2020-12-16 19:15:42 所属栏目:百科 来源:网络整理
导读:在 Ruby中,使用for循环是一种糟糕的风格.这通常被理解. 推荐给我的风格指南: ( https://github.com/bbatsov/ruby-style-guide#source-code-layout) 说: “永远不要使用,除非你确切知道为什么.大部分时间都应该使用迭代器.for是按每个方式实现的(所以你要添
在
Ruby中,使用for循环是一种糟糕的风格.这通常被理解.
推荐给我的风格指南: ( https://github.com/bbatsov/ruby-style-guide#source-code-layout) 说: “永远不要使用,除非你确切知道为什么.大部分时间都应该使用迭代器.for是按每个方式实现的(所以你要添加一个间接级别),但有一个扭曲 – 因为没有介绍新的范围(与每个范围不同)和在其区块中定义的变量将在其外部可见.“ 给出的例子是: arr = [1,2,3] #bad for elem in arr do puts elem end # good arr.each { |elem| puts elem } 我已经研究过,我找不到关于如何模拟一个for循环的解释,该循环提供了一个迭代值,我可以传递给场所或执行算术运算. for i in 0...size do puts array1[i] puts array2[size-1 - i] puts i % 2 end 如果它是一个阵列很容易,但我经常需要当前位置用于其他目的. 可以改进吗?什么是解决方案,如果有的话?谢谢. 解决方法
如果要迭代集合并跟踪索引,请使用
each_with_index :
fields = ["name","age","height"] fields.each_with_index do |field,i| puts "#{i}. #{field}" # 0. name,1. age,2. height end 你在0 …大小的例子变成: array1.each_with_index do |item,i| puts item puts array2[size-1 - i] puts i % 2 end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |