迭代器是高级语言的特性,非常好用。

比如数组的迭代
 [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来返回到迭代器的开始,比如
ruby之旅(12) ruby中的迭代器isretry = false
ruby之旅(12) ruby中的迭代器
for l in 0..4
ruby之旅(12) ruby中的迭代器  
print l
ruby之旅(12) ruby中的迭代器  
if l == 2 and isretry == false
ruby之旅(12) ruby中的迭代器    isretry 
= true
ruby之旅(12) ruby中的迭代器    puts
ruby之旅(12) ruby中的迭代器    retry
ruby之旅(12) ruby中的迭代器  end
ruby之旅(12) ruby中的迭代器end
ruby之旅(12) ruby中的迭代器puts
ruby之旅(12) ruby中的迭代器
# output:
ruby之旅(12) ruby中的迭代器#
 012
ruby之旅(12) ruby中的迭代器#
 01234


最后我们自己定义一个自己的while结构语句 哈哈  使用方法来模仿while
ruby之旅(12) ruby中的迭代器def mywhile(tj)
ruby之旅(12) ruby中的迭代器    
return if not tj
ruby之旅(12) ruby中的迭代器    
yield
ruby之旅(12) ruby中的迭代器    retry
ruby之旅(12) ruby中的迭代器end
ruby之旅(12) ruby中的迭代器i
=0
ruby之旅(12) ruby中的迭代器mywhile(i 
< 3){puts i.to_s; i += 1}

相关文章: