初心者が楽しい面白いと感じたRubyのメソッドたち

f:id:damdom:20201221120355j:plain:w400

これは Ruby Advent Calendar 2020の21日目の記事です。

qiita.com

べこと申します。本業はデザイナーですがフィヨルドブートキャンプにて Ruby 勉強中です。
これまでプログラミングについては学校でやったり仕事で書いたりで基礎知識くらいはあるのですが、Ruby 自体はちゃんと書いたことがなく、オブジェクト指向についてはなんとなく理解しているが実際書くのは迷うな〜くらいのレベル感です。

Rubyを学んでみた感想

Ruby を本格的に書き始めてだいたい3ヶ月くらいなのですが、

  • 文の中にカッコや return がめったに出てこないんだなー
  • 知識をつければつけるほど(?)短く書けるんだなー
  • 美学を感じる!

みたいな感想を持っています。

特に好き

まだまだ勉強中ですが以下の map メソッド、to_ほげほげ メソッドが興味深くておもしろいな〜と感じています。

map メソッド

プログラミングって配列の中身のひとつひとつに対してゴニョゴニョやるっていうのが多い気がするのですが、Ruby は map メソッドで短く書けておもしろいですね。

array = [1,2,3,4,5]
array.map { |n| n * 2 }
=> [2, 4, 6, 8, 10]

これを初めてみたときに何をやっているかすぐ理解できずに「え??」って思ったんですが、簡潔に1行で書けちゃうのすごいなと…
Ruby を知らない昔の自分なら配列に添え字つけて for 文で回してる。

to_i メソッドと to_s メソッドのかけあい(?)

型を変えるメソッドが to_ほげほげ で統一されてるのがシンプルでいいなと。

また、to_i(N)to_s(N) のようにメソッドに引数をつけるとそれを基数にした N 進数にでき、数値が対応しているところが面白いです。

"11111".to_i(2)
=> 31
31.to_s(2)
=> "11111"

フィヨルドブートキャンプの日報で udzura さんにコメントで教えてもらいました)

String#to_i (Ruby 2.7.0 リファレンスマニュアル)

Integer#inspect (Ruby 2.7.0 リファレンスマニュアル)

まとめ

なんかめちゃくちゃ短い記事になってしまった……
知識ゼロからのスタートではない分、いま持ってる知識(ただしめっちゃ量は少ない)とすり合わせしながら学んでいます。「JS だとああ書くのが Ruby だとこうなんだな〜」とか。
引き続きやっていきます。