tomの開発メモ

pythonやrubyやjavascript他の学習をメモしていく日記。その他、デイリーで起こったことの殴り書き。

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"