【Rubyメモ】Rubyのuniqについて理解する!こつこつ学んでいこう!

IT/プログラミング

2021年2月28日の記事でございます~

Rubyのuniqについて理解を深める会をはじめます!

uniqueの英語の意味を調べた

uniqは、「unique」を省略したものだと思います。

そのため、uniqueを調べました。

unique:ただ一つだけ、他は存在しない、固有の、数学的:一意

という意味らしいです。Rubyは「数学的:一意」で使っていそうですね!

つまり、uniqを使うと一意になるっぽいです!

実際つかっていきましょう!

uniqを使ってみた

int_array = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 11]

p int_array.uniq
p int_array
p int_array.uniq!
p int_array

word_array=["あ", "り", "が","と","う","あ","り"]

p word_array.uniq
p word_array
p word_array.uniq!
p word_array

実行結果
[1, 2, 3, 4, 5, 11]
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 11]
[1, 2, 3, 4, 5, 11]
[1, 2, 3, 4, 5, 11]
["あ", "り", "が", "と", "う"]
["あ", "り", "が", "と", "う", "あ", "り"]
["あ", "り", "が", "と", "う"]
["あ", "り", "が", "と", "う"]

なるほどなるほど!

配列の複数の要素で同じ値があった場合は、一意にして
配列を返すメソッドのようです!

そして、非破壊メソッドです。
いつも通り「!」をつけると破壊メソッドとなりますね。

ブロックで書いてみた

thank_array = [3, 9, 3, 9, "3", "9", "3", "9"]
p thank_array.uniq
p thank_array.uniq{|value|value.to_s}

実行結果
[3, 9, "3", "9"]
[3, 9]

同じ値は同じ値でも、
型をちゃんと見て一意に
していることがわかりました!

ブロックを用いて1文字ずつ型をString型にしても、
返してくれるものは、配列で、
中身はintの値となりました。

エラーケース

thank_array = [3, 9, 3, 9, "3", "9", "3", "9"]
p thank_array.uniq(3)

実行結果
`uniq': wrong number of arguments (given 1, expected 0) (ArgumentError)

まぁそうなりますよね~笑
uniqは引数のないメソッドでした~

まとめ

  • 同じ型の同じ値を一意にするメソッド
  • 非破壊的で、「!」を付けると破壊的!
  • 引数は必要ないメソッド!

以上でした!

RubySilverに挑戦した

Ruby Silverに挑戦したお話はこちらからどうぞ

タイトルとURLをコピーしました