参考:ちゃんるび!さんのudemy動画がとても分かりやすかったです
https://www.udemy.com/course/ruby-on-rails-c/learn/lecture/24901088#reviews
シンボル ex) :name, :sbl
- (誤解を恐れずにいうと)Stringの上位互換
- 最初に
:
があったらシンボルと思ってよし -
不変で重複がない
ため、一意の識別子として頻繁に使用される
シンボルをキーとしたハッシュ
定義
※どちらもまったく同じハッシュが作成される
hash = { :id => 1, :name => 'saku' }
hash = { id: 1, name: 'saku' } #(省略系)
参照
# 'saku' を取り出す)
hash[ :name ]
ハッシュは Key の重複を許さないため、同じく重複がないシンボルと相性がよい。
そのためハッシュの Key としてシンボルが多様される。
シンボルのほうがメモリ効率が良いが、パフォーマンスを気にするレベルの差ではないため、Strig" "表現のほうが可読性がよい等の理由があるときは、Stringを使ってもまったく問題ない。
メソッドのキーワード引数
#定義
def sum_number( arg1, arg2:)
arg1 + arg2
end
#呼び出し
sum_number 3, arg2: 4
==> 4
- 引数に見出し(キーワード)をつけることができる
- 引数が多い場合にキーワードを指定することで可読性が向上する。
キーワード引数は順番を問わないのも便利 - 通常引数とキーワード引数は混在できる
その場合は、通常引数はキーワード引数より前に定義される必要がある - キーワード引数がある場合は、呼び出し時に必ずキーワード付きで指定する必要がある
#OK
sum_number 3, arg2: 4
#NG
sum_number 3, 4