RubyのArrayクラスについて
お父さん、お母さん、元気ですか?
家族に音信不通系エンジニア見習いイハ(社内最年少)です。
「体温調節できないみたいで、社内に居るのに突然寒くなったり汗だくになったりするんですよね〜」とぼやいたら、
「更年期?」と言われました。イハ(社内最年少)です。
そんなことはさておき、更年期の疑いのある私は覚えたものをすぐに忘れてしまうので、
今回はRubyのArrayクラスについて復習がてらまとめました。
Arrayクラスとは
配列を表すオブジェクト。
※配列ってなんやねん
データをたくさん入れられる箱のようなもの。
hoge1 = Array.new=>[]
hoge2 = Array.new(2)=>[nil, nil]
hoge3 = [“hoge”, “hoge”]=>[“hoge”, “hoge”]
みたいな感じで作れます。
インスタンスメソッド
+
2つの配列をつなげる。
hoge1 = [“a”, “b”, “c”, “d”]
hoge2 = [“a”, “c”, “e”, “f”]
p hoge1 + hoge2=>[“a”, “b”, “c”, “d”, “a”, “c”, “e”, “f”]
足し算っすね。
&
2つの配列に共通する要素を取り出す。
hoge1 = [“a”, “b”, “c”, “d”]
hoge2 = [“a”, “c”, “e”, “f”]
p hoge1 & hoge2=>[a, c]
積集合というらしいです。
collect
map
要素の数だけブロックに渡して、その結果を返す。#mapと#collectは同じだそう。
hoge = [1, 2, 3]
p hoge.map {|i| i * 3}=>[3, 6, 9]
諸行無常先輩に「よく使うメソッドって何ですか?」と聞いたら「map!」と即答されました。
これは絶対に覚えておくべきです。
first
配列の最初の要素を返す。配列が空のときはnilを返す。
hoge = [“a”, “b”, “c”, “d”]
p hoge.first=>“a”
諸行無常先輩がしばらく考えてから「あ、あとfirst」と言ったので、
どんなときに使うのか聞いてみたら「配列の最初の値を取りたいとき」と回答してくれました。
今度は「配列の最初の値が取りたくなるのはどういう場合か」を聞いてみようと思います。
compact
配列からnilを取り除く。
hoge = [“a”, nil, nil, “b”]
p hoge.compact=>[“a”, “b”]
あれ?できないぞ?と思ったらconpactと打っていました。気をつけよう。
join
配列の要素を文字列に変換して、引数を区切り文字として結合した文字列を返す。
hoge = [“a”, “b”, “c”, “d”]
p hoge.join(“, “)=>a, b, c, d
引数を省略すると、区切り文字なしで結合した文字列を返す。
flatten
配列の配列を平坦化した配列を返す。
hoge = [1, [2, 3, 4], 5, 6]
p hoge.flatten=>[1, 2, 3, 4, 5, 6]
大体誤字をやらかす私が珍しく正しく打てました。
uniq
配列の仲で重複する要素を削除した配列を返す。
hoge = [1, 1, 2, 3, 2, 4, 6, 4, 5, 7]
p hoge.uniq=>[3, 6, 5, 7]
諸行無常先輩がこれもよく使うと言っていました。これもどういうときに使うのか聞いてみようと思います。
他にもたくさんのメソッドがありますが、今回は諸行無常先輩が「よく使う」と挙げてくれたものを中心に書きました。
恥ずかしながら配列というものがよく分からず学生時代は避け続けて生きていたのですが、
分かってからは最高だなと思っています。最高はさすがに盛り過ぎました。
最高というか不可欠ですね。一体今まで私はどうやって生きてきたんだろう…
そんな疑問を抱えつつ、イハは高円寺という魔の地に引きずり込まれて行った。
TAG
仮面ライダーになりたかった最年少ポジティブゆとり世代です。ここの文章が短いとレイアウトが崩れるので書いておきますが、沖縄ファミリーマートの泡盛コーヒーは美味しい。
TAG
- Android
- AWS
- Bitrise
- CodePipeline
- Firebase
- HTML
- iOS
- IoT
- JavaScript
- KPI
- Linux
- Mac
- Memcached
- MGRe
- MGReのゆるガチエンジニアブログ
- MySQL
- PHP
- PICK UP
- PR
- Python
- Ruby
- Ruby on Rails
- SEO
- Swift
- TIPS
- UI/UX
- VirtualBox
- Wantedly
- Windows
- アクセス解析
- イベントレポート
- エンジニアブログ
- ガジェット
- カスタマーサクセス
- サーバ技術
- サービス
- セキュリティ
- セミナー・展示会
- テクノロジー
- デザイン
- プレスリリース
- マーケティング施策
- マネジメント
- ラボ
- リーンスタートアップ
- 企画
- 会社紹介
- 会社紹介資料
- 勉強会
- 実績紹介
- 拡張性
- 採用
- 日常
- 書籍紹介
- 歓迎会
- 社内イベント
- 社員インタビュー
- 社長ブログ
- 視察
- 開発環境