LoginSignup
0
0

More than 3 years have passed since last update.

【Ruby】シンボルの変数と文字列の変数の違い。[:a]と['a']の違いについて。

Last updated at Posted at 2020-12-15

個人メモです。

オブジェクトの値の取得方法で、obj[:a]obj['a']では対象となるデータの構造が異なる。

オブジェクトがシンボルで作成されているか文字列かによる。

文字列を使ったオブジェクトをハッシュと呼ぶ。


シンボルを使ったオブジェクト

obj = {a:1, b:2}の場合、プロパティ名はシンボルとなる。
データ取得時の指定もシンボルで行う。

オブジェクト
obj = {a:1, b:2}
=> {:a=>1, :b=>2}
データの取得
##OK
obj[:a]
=> 1

##NG
obj['a']
=> nil

シンボル形式のオブジェクトのプロパティ名を' 'で指定するとエラーになる。


文字列を使ったオブジェクト

obj2 = {"a" => 1, "b" => 2}のように文字列で作成したオブジェクトのデータ取得は文字列で指定する。

##オブジェクト定義
obj2 = {"a" => 1, "b" => 2}
=> {"a"=>1, "b"=>2}

##データ取得
obj2['a']
=> 1
obj2["a"]
=> 1


##NG
obj2[:a]
=> nil

シンボルを使うとエラーになる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0