迭代器是高级语言的特性,非常好用。
比如数组的迭代
[1,2,3].each{|n| puts n.to_s}
(1..100).each{|n| puts n.to_s}迭代每个元素
字符串的迭代
"abdc".each_byte{|chr| printf "%c\n",chr} 迭代每个byte
"a\nb\nc".each_line{|s| puts s} 以换行符进行分割迭代
retry的使用:
迭代过程中可以使用retry来返回到迭代器的开始,比如
isretry = false
for l in 0..4
print l
if l == 2 and isretry == false
isretry = true
puts
retry
end
end
puts
# output:
# 012
# 01234
for l in 0..4
print l
if l == 2 and isretry == false
isretry = true
puts
retry
end
end
puts
# output:
# 012
# 01234
最后我们自己定义一个自己的while结构语句 哈哈 使用方法来模仿while
def mywhile(tj)
return if not tj
yield
retry
end
i=0
mywhile(i < 3){puts i.to_s; i += 1}
return if not tj
yield
retry
end
i=0
mywhile(i < 3){puts i.to_s; i += 1}