0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Rubyにおける : の意味

Last updated at Posted at 2021-11-21

#はじめに
Rubyでコードを書いていると、:::がよく出てきますが、
いまいちはっきりと理解できていなかったためまとめてみます。

##シンボル

シンボルとは、任意の文字列に1対1に対応するオブジェクト
:hogeのように表す
下記のように、文字列が都度異なるIDになるのに対し、シンボルではすべて同じIDになる
メリット: メモリの節約(メモリの同じ領域を使用するため)

[1] pry(main)> :hoge.object_id
=> 2307228
[2] pry(main)> :hoge.object_id
=> 2307228
[3] pry(main)> "hoge".object_id
=> 300
[4] pry(main)> "hoge".object_id
=> 320

##ハッシュのキーにシンボルで使う場合
ハッシュのキーには一般的に文字列ではなく、シンボルを使用する
理由としては、文字列よりも高速で値を取り出すことができるため

[1] pry(main)> hash = { name: '太郎', age: 20 }
=> {:name=>"太郎", :age=>20}

##キーワード引数
メソッドに引数を渡す場合に、その引数のもつ意味をわかりやすく表現したい場合

##条件演算子
記法は、

とある条件 ? 条件がtrueの時 : 条件がfalseの時

以下の二つは同じ意味の条件式
: を使うことで、簡略に記述することができる

score = 80
score > 60 ? "合格" : "不合格"
=> "合格"
score = 80
if score > 60
 "合格"
else
 "不合格"
end
=> "合格"

##クラスの外部から定数を参照する場合
外部クラスの定数を参照する際に、::を使用する

class Hoge
  FOO = 'Bar'
end

Hoge::FOO
=> "bar"

#使用例
validatesメソッドの引数にたくさん:が登場しています。
:email :uniqueness はシンボル
:length :format はキーワード引数
maximum: 255 with: VALID_EMAIL_REGEX はハッシュのキーにシンボルを使用している
という意味で使っています。

validates :email, presence: true, length: { maximum: 255 },
                    format: { with: VALID_EMAIL_REGEX },
                    uniqueness: true

#参考文献
プロを目指す人のためのRuby入門(https://bit.ly/3wmJheK)

0
0
2

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?