1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Rubyのコロンについてまとめた

Last updated at Posted at 2025-08-31

RubyやRailsに触れ始めると、あちこちに「: コロン」が登場します。
最初は「なんでこんなにコロンが多いんだ…?」と戸惑う方も多いはずです。(僕だけかな…?)

この記事では、Ruby におけるシンボルの基本と、Railsでの実用例を整理して紹介します。

1. シンボルとは?

Rubyで :hoge と書くと、それは シンボル というオブジェクトです。

:sushi.class
# => Symbol

文字列との違い

"sushi".object_id   # 毎回異なる
"sushi".object_id   # また異なる

:sushi.object_id    # 常に同じ
:sushi.object_id    # これも同じ
  • 文字列: 作るたびに別オブジェクト
  • シンボル: 常に一意、イミュータブル

そのため、ハッシュのキーなどに好んで使われます。

2. ハッシュでの利用

シンボルはハッシュキーに頻出します。

menu = { sushi: 1200, ramen: 1000 }
puts menu[:sushi]  # => 1200

これは次の書き方と同じ意味です。

{ :sushi => 1200, :ramen => 1000 }

つまり sushi::sushi => の省略記法です。

3. 値としてもシンボルを使う

キーだけでなく値にシンボルを置くこともできます。

order = { main: :gyoza, drink: :beer }

puts order[:main]       # => gyoza
puts order[:drink].to_s # => "beer"

Railsでよく見る hoge: :fuga のパターンも、
「左のコロンはキー」「右のコロンは値としてのシンボル」と理解すればOKです。

4. Railsでの利用例

Railsではシンボルが DSL 的に多用されます。

バリデーション

class User < ApplicationRecord
  validates :email, presence: true
end

enum

class User < ApplicationRecord
  enum role: { guest: 0, member: 1, admin: 2 }
end

user = User.new(role: :guest)
user.role  # => "guest"

i18nキー

I18n.t(:welcome_message)

5. 周辺でコロンが出てくるケース

シンボル以外にも、Rubyではコロンを含む記法があります。

キーワード引数

def greet(name:)
  puts "Hello, #{name}!"
end

greet(name: "Okarun")
# => Hello, Okarun!

定数のスコープ演算子1

puts Math::PI # => 3.141592653589793
# Math モジュールの定数 PI を参照している

三項演算子1

puts rand(2).zero? ? "吉" : "凶"
# (条件式) ? (真のとき評価する式) : (偽のとき評価する式) の形で使う
# 1/2 の確率で「吉」か「凶」を表示

余談

自分は Ruby の :symbol を最初に見たとき、「なんだこれ…?」と理解に苦しみました。
でも一度「enumみたいなラベル」と思ったらスッと理解できて、だいぶ楽になりました。

ただ正直、今でも コロンが左右に出てくる書き方(例: hoge: :fuga)には少し混乱します。
「左がキー、右が値」と整理してますが、慣れるまでは引っかかりポイントでした。

それでも一度理解してしまえば、enumよりもシンボルの方が「名前そのものに意味があるラベル」として直感的で、こちらの方がわかりやすいですね

  1. @scivola様にご教示いただきました。ありがとうございます! 2

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?