Rails Tutorialで詰まったこと(第4章 Rails風味のRuby)

本記事の目的

  • 本格的なプログラム言語学習を独学するに辺り、自分が躓いた場所を逐一残していおくことで他の独学者の皆さんの役に立つことを狙って
  • 自身の忘備録として

第4章 Rails風味のRuby

この章では基本的なRubyの文法や構文、そしてそれをRailsでどのように利用しているのかを書かれ、学ぶ構成になってます。
数値の計算・文字列操作・配列・ハッシュ・シンボルといった基本からRubyのメソッド・クラスがどのようにRailsに組み込まれ、便利に利用可能になっているのかを知ることができました。

問題1. 範囲(range)と配列を組み合わせた使い方への困惑

  • 原因 : Rubyの範囲(range)の記法と文字列の組み合わせという問題を見て冷静さを失った。(これまでの演習は数値中心だったため)
  • 対策 : 何度もテキストを読み直して、文字列の場合はクォーテーションが必須という事を思い出した。

下記はrangeと配列化の組み合わせ例(数字/文字列)

# 数値のrange
0..10

# 数値のrangeを配列化
(0..10).to_a

# 文字列のrange
"a".."g"

# 文字列のrangeを配列化
("a".."g").to_a

【結論/感想】
Rubyで初めて触れた記法、範囲(range)に戸惑いました。中々演習問題が解くことができず他に比べると時間がかかりました。

問題2. ハッシュとシンボルの使い分けの理解に時間がかかる

  • 原因 : シンボルはRuby独自で発展した記法のため、他の言語(PHPPythonJava)等にしか触れていない自分にとっては新鮮過ぎて使いみちを迷った
  • 対策 : とにかく書いて慣れる。演習問題やテキストの説明を読みながら迷ったら戻る、そして読み直すを繰り返すことで理解を深めた
# ハッシュ(他の言語で言う連想配列)
user1 = { "last_name" = "Mark", "first_name" = "Robson"  }

# シンボル記法1(PHPのアロー関数に似てるけど不思議)
user2 = { :last_name => "Jonathan", :first_name => "Robson"  }

# シンボル記法2(こっちはJSONっぽい?)
user3 = { last_name: "Bob", :first_name: "Robson"  }

# シンボル記法2と3は等価(これにも驚き)
user2 = user3
> true

【結論/感想】 シンボル記法の書き方には戸惑いました。若干書き方がPHPのアロー関数っぽいですが、コロン(:)をつけて配列のKeyとするやり方、そしてJSONのように後ろにコロン(:)をつける書き方等色々あることを知りました。