ruby基礎のメモ(2)
先日の続き。
リスト
a=[1,2,3,4,5] a.include?(10)
これだと、Falseが返ってくる。aに10が含まれている場合はTrue。
なので、当然、
a=[1,2,3,4,5] a.include?(1)
とすれば、Trueが返ってくる。
a=[1,2,3,4,5] a.reverse! puts a
reverse!メソッドは配列の要素の順番を反転させる。レシーバ自身を変更するメソッドで、戻り値はレシーバ自身。
返ってくるのは、
[5, 4, 3, 2, 1]
となる。
a=[1,2,3,4,5] a.reverse puts a
返ってくるのは
[1, 2, 3, 4, 5]
となる。「!」がない場合、レシーバ自身は変更なし。
リファレンスも参照
https://docs.ruby-lang.org/ja/search/version:2.4.0/class:Array/query:reverse/
b=(0..15).to_a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
と、0から15までのArrayができる。to_a = to array。
b<<25
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 25]
のように、末尾に25が追加される。
その他、リストへの追加や削除はリファレンスを参照。
https://docs.ruby-lang.org/ja/search/version:2.4.0/class:Array/query:push/
c=[1,2,3,4,5,3,2] puts c c.uniq! puts c
返ってくるのは以下のとおり。uniqで重複を省ける。
[1, 2, 3, 4, 5, 3, 2]
[1, 2, 3, 4, 5]
name = ["suzuki","tanaka","okada","yamada"] name.each do |i| puts "hello,#{i.capitalize}-san!" end
返ってくるのは以下。
hello,Suzuki-san!
hello,Tanaka-san!
hello,Okaada-san!
hello,Yamada-san!
name = ["suzuki","tanaka","okada","yamada"] name.each { |i| puts "hello,#{i.capitalize}-san!"}
同じ結果が返ってくる(1 lineで書くことができる)。
y=(0..20).to_a y.select{|i| i.odd?}
返ってくるのは以下。selectで、false を返した要素を自身から削除。
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
a=["My","NAME","IS","TARO"] a.join(":")
出力は以下。
"My:NAME:IS:TARO"