railsやRubyと学習を初めてから1ヶ月がたちました。
まだまだ理解できてないところも多々あるので、今回もその記録として投稿します。
さて今日は、「プロを目指すためのRuby入門編」のシンボルを使った、
単位変換プログラムを作成中に少しおや?となったシンボルについてまとめました!
###シンボルについてとその使い方について
・シンボルは文字列の変わりに使用することもあるが、文字列と同じオブジェクトとは限らない
・同じシンボル同士は同じオブジェクト
ざっくりこんな感じでしょうか。
また、定義の仕方としては、
:シンボル名
:example => "example" と表すことも可能
また大きな違いとしては、
シンボルは内部的には整数で処理されており、イミューダブルなオブジェクト。破壊的変更が効かない。
###ハッシュのキーでの使用
基礎的なところは改めて整理できたので、次はハッシュ内での使用のされ方について。
examples = { :a => "aaa", :b => "bbb", :c => "ccc"}
examples = { a: "aaa", b: "bbb", c:"ccc"} #上記を省略した形
example[:a] => #"aaa"を呼び出し
全てシンボルに変更も可能
examples = { :a => :aaa, :b => :bbb, :c => :ccc}
ハッシュのキーにはシンボルが適しているので、大体は「シンボル:値」と表されるよう。
(イミューダブルな性質や処理速度の等の関係から)
###キーワード引数での使用
最後にキーワード引数時の使用に関して。
基本は上記と同様、「シンボル:値」で問題はなし。
def example_length(length, from: :m, to: :m)
units = { m: 1.0, ft: 3.28, in: 39.37}
(length / units[from] * units[to]).round(2) #=>unitsハッシュのFromキー(ここでいうm:)の値と同じくtoキーを呼び出している。
end
以上、本当初心的なところにはなりますがわかっている気でいるのが一番怖いので、
今後も手を動かしながら引っかかったところはこのように自分なりに整理をして行きたいです。