(Exercises終わるまではあんまり中身を書かないほうがいいですね、きっと...)
2.1.1 配列の構築
2.1.2 添字参照
2.1.3 添字代入
2.1.4 配列の比較
2.1.5 様々なメソッド
2.1.6 ブロック付きメソッドとイテレータ
Exercises
0. 空の配列を作る(例)
1. 文字列"abc", "def", "ghi"を要素に含む配列を作り、aに代入する。(「aに代入する」=>"a = ~")
2. 配列aの大きさを数える
a = ["test1","test2","test3" ]
puts a.size
3. 配列aの中の要素を一つずつ取り出して、putsで出力する(each do ~ end構文)
a = ["test1","test2","test3" ]
a.each do |item|
puts item
end
4. 配列aの最初の要素にアクセスする
array = ["test1","test2","test3" ]
puts array [0]
別の方法など
5. 配列aの最後の要素にアクセスする
array = ["test1","test2","test3" ]
puts array [-1]
別の方法など
6. 配列aの2番目の要素を"xyz"に変更する
array = ["test1","test2","test3" ]
array [1]="xyz"
7. 配列aの中の要素を","でつないで文字列に変換する
array = ["ham", "egg", "spam"]
array.join(",") #=> "ham,egg,spam"
8. 数字の0から10までを要素に含む配列bを作る。((0..10)という構文を使う)
# why is this 9 NOT 10?
[NOTE]
(a .. b) and (a ... b) is not the same. two-dots means "from a to b" and three-dots means "from a to b-1"
9. 配列bの各要素を10倍した配列を作る
b2=b.collect!{|i| i *10 }
p b2
You do not need to use collect!. just "collect" is OK.
b2=b.collect{|i| i *10 }
p b2
別の解
b2=b.map{|i| i *10 }
p b2
mapとcollectは名前は違うけれど、まったく同じ動作をします。好みのほうをどうぞ。
10. any?, all? を使ったサンプルを書いてみる
# ひとつでも奇数が含まれているかを調べる
a = [1,3,5,7,8]
a.any? do |n|
n % 2 == 0
end #=> true
# "n % 2 == 0"は、"n.even?"と書いても同じ
a = [1,3,5,7,9]
a.any? do |n|
n.even?
end #=> false
# すべてが偶数であるかを調べる
a = [2,4,6]
a.all? do |n|
n.even?
end #=> true
a = [2,4,6,7]
a.all? do |n|
n.even?
end #=> false
11. 配列bの要素を逆に並べ替える
b3に結果を代入する必要はないですが...
12. 配列bの要素の総和を求める
sum = b.inject(0){|result, i| result + i }
p sum
おお、injectだ。すばらしい。
別の方法
sum = 0
b.each { |n| sum += n }
puts sum
さらにinjectを使った別の方法
最終更新:2009年05月19日 22:49