fork download
  1. class CharEnumerator
  2. include Enumerable
  3.  
  4. def initialize(str)
  5. @str = str
  6. @idx = 0
  7. end
  8.  
  9. def each(&block)
  10. while @idx < @str.length
  11. yield @str[@idx]
  12. @idx += 1
  13. end
  14. end
  15. end
  16.  
  17. #### main ####
  18.  
  19. puts '***************'
  20. CharEnumerator.new('abcdefghijklmn').each do |ch|
  21. puts ch
  22. end
  23.  
  24. puts '***************'
  25. ### Enumerableをincludeすると、each以外にも便利なもAPIが使える
  26. CharEnumerator.new('abcdefghijklmn').each_with_index do |ch, idx|
  27. puts "#{idx+1}文字目は#{ch}"
  28. end
  29.  
  30.  
Success #stdin #stdout 0.02s 9664KB
stdin
Standard input is empty
stdout
***************
a
b
c
d
e
f
g
h
i
j
k
l
m
n
***************
1文字目はa
2文字目はb
3文字目はc
4文字目はd
5文字目はe
6文字目はf
7文字目はg
8文字目はh
9文字目はi
10文字目はj
11文字目はk
12文字目はl
13文字目はm
14文字目はn