![見出し画像](https://assets.st-note.com/production/uploads/images/31008769/rectangle_large_type_2_09416a9bdee6e59cb62acfb7b6585e32.jpeg?width=1200)
改めてRubyの基礎を勉強する(2)
前回に引き続き、Rubyの基本をチェリー本を使って勉強していきます
チェリー本はこちら
今回は第4章を勉強しました
ブロックってよく聞くけど使ったことないな
— えりりん.rb@英語大好きフリーランスエンジニア (@suuuuengch) July 18, 2020
って思ってたけど
eachのdo〜endってブロックなんだ
めっちゃ使ってたわ
do~end は {} でも書ける
— えりりん.rb@英語大好きフリーランスエンジニア (@suuuuengch) July 18, 2020
という基本的な書き方の発見もしました
.. と ... の違いって終端の違いか
— えりりん.rb@英語大好きフリーランスエンジニア (@suuuuengch) July 18, 2020
両端の違いだと間違えて覚えてた
1..5 → 1 <= a && a <= 5
1...5 → 1 <= a && a < 5
範囲指定の書き方が独特だな〜と思っていましたが、間違えて認識していました
それが訂正できたのも良かったです
rjust は表示桁数揃えて前0とかつけてくれるんだ
— えりりん.rb@英語大好きフリーランスエンジニア (@suuuuengch) July 23, 2020
これ便利
C#使っていた頃は業務アプリ作っていたので、前0はなんか気になってしまう
a[1, 2, 3, 4, 5]
— えりりん.rb@英語大好きフリーランスエンジニア (@suuuuengch) July 23, 2020
で
a[1] = 2
a[-1] = 5
というふうにマイナスの添字が使えるの初めて知った
splat展開で配列が展開できるのも初めて知った
— えりりん.rb@英語大好きフリーランスエンジニア (@suuuuengch) July 23, 2020
eachして取り出して1個ずつ追加みたいなことをしなくて済むのね
配列からランダムに値を取り出してくれるsampleメソッド
— えりりん.rb@英語大好きフリーランスエンジニア (@suuuuengch) July 23, 2020
これは使いたいとき結構ありそう!
これも知らなかったな〜https://t.co/D4wzS39mRb
shuffleは配列を並び替えしてくれるのね
— えりりん.rb@英語大好きフリーランスエンジニア (@suuuuengch) July 23, 2020
用途によってはこっちも使えそう
配列の扱いについても知らなかった方法がありました
今回特に気になったのが、mapメソッドについての扱いでした
mapも配列から1つずつ要素を取り出して処理をしてくれるのですが、これは実務でよく使っていました
しかし、あまりちゃんと理解していなかったので、こんな疑問にぶつかりました
mapって
a = ["1", "2", "3"]
a.map(&:to_i)
で全部の要素にto_iを実行して数字にして返すというのはわかる
User.all.map(&:name)
ってやるとnameカラムの値だけ返してくれるけど
これは何が実行されているんだろう?
この2つのmapって同じ??
結論としては両者は同じmapでした。
奥深い内容なので、どこに疑問をもったか、どういうことなのかというのは別noteでまとめようと思います
(後者に関してはRailsのActiveRecordが絡んでくるので、そこも勉強して)
第4章にはテスト駆動開発のプロセスについても書かれているのですが、これが印象的でした
「テスト駆動開発」で
— えりりん.rb@英語大好きフリーランスエンジニア (@suuuuengch) July 23, 2020
「1つのテストをパスするための仮実装を書く」
とあって、
確かにパスするための仮実装が決まると、
じゃあこれを出力するためにはどうしたら良いんだろう?
って道筋が立てやすくなるなって思った💡
内容盛りだくさんの第4章でしたが、新しい発見がたくさんあって勉強になりました
引き続きやっていきます!