2021年2月28日ぐらいの記事ですので、
年数が経っている場合は違う動作になっているかもしれません。
今日はRubyのjoinについて
勉強していきましょう!
まずは英語の意味から調べていきましょう。
joinの英語の意味とは
join:複数のものを結び合わせる、加入する、名詞だと:接合部分
といった意味でした。
つまり、何かを結び合わせたり、加入させたいときに
使うメソッドということですね。
joinの使い方その1
array = [12,13,14]
p array.join()
p array
p array.join('/')
実行結果
"121314"
[12, 13, 14]
"12/13/14"
joinメソッドを引数なしで実行した結果
「”121314″」と返ってきました。
配列の[12,13,14]に対し、カンマを無くして文字を連結させて、
string型で値が返ってきました。
そのあとのローカル変数はどうでしょう?
実行結果は「[12, 13, 14]」と変化なしです。
つまり、非破壊的ということがわかりました。
引数に「/」を入れて実行してみました。
すると、「”12/13/14″」とスラッシュ区切りのString型で
値が返ってきました。
ひとまずわかったことは以下。
- 第一引数を省略すると、カンマの区切りを消す。リプレイスみたい
- joinは非破壊メソッド
- 戻り値はstring型で返ってくる
- 第一引数に「/」を入れると、カンマをスラッシュで区切ったstring型が返ってくる
joinの第一引数にいろいろな値を試してみた
array = [3,9,"あ","り","が","と","う"]
p array.join(',')
p array.join('"')
p array.join('#')
p array.join(' ')
p array.join('おなかすいた')
実行結果
"3,9,あ,り,が,と,う"
"3\"9\"あ\"り\"が\"と\"う"
"3#9#あ#り#が#と#う"
"3 9 あ り が と う"
"3おなかすいた9おなかすいたあおなかすいたりおなかすいたがおなかすいたとおなかすいたう"
配列に対して第一引数にカンマを入れると
string型で配列の要素をカンマ区切りで返ってきました。
ダブルクォートだと「¥”」で区切られ
String型で返しています。なんだろう・・・・
シャープは「#」で区切られ
String型を返しています。
半角スペースは半角スペースで
String型で返ってきました。
「おなかすいた」でも区切ることが
できました。
第一引数はセパレーターということですね!
separator:分ける
どう使うとエラーになるのか調べてみた
array = [3,9,"あ","り","が","と","う"]
p array.join(1)
実行結果
`join': no implicit conversion of Integer into String (TypeError)
第一引数が文字列ではないと、TypeErrorになりました!
array = [3,9,"あ","り","が","と","う"]
p array.join(',', '#')
実行結果
`join': wrong number of arguments (given 2, expected 0..1) (ArgumentError)
引数を2つ適当に入れてみたら、「引数が多いぜ~」と
ツッコミが入りました。
「expected 0..1」は「予想引数は0から1ね!」
ということらしいです。
わかったことは以下。
- 第一引数は文字列で指定すること
- 引数を2つ書くと、「引数が多いぜ~」とツッコミが入る!
まとめ
- 第一引数を省略すると、カンマの区切りを消す。リプレイスみたい。
- joinは非破壊メソッド
- 戻り値はstring型で返ってくる
- 第一引数に「/」を入れると、カンマをスラッシュで区切ったstring型が返ってくる
- 第一引数はセパレーターの役割第一
- 第一引数は文字列で指定すること
- 引数を2つ書くと、「引数が多いぜ~」とツッコミが入る!
joinについてはこんな感じで動作確認して
遊びながら理解を深めていきました!
RubySilverに挑戦した
Ruby Silverに挑戦したお話はこちらからどうぞ。