Rubyは動的型付け言語です。変数は型を宣言せず、どんな値でも保持できます。Rubyにはいくつかの基本的な型(すべてオブジェクト)があり、変数のスコープを示すために命名規則(sigil)を使います。
変数と動的型付け
count = 42 # no type declaration — inferred
name = "Ann"
count = "now a string" # dynamically typed — can change type
42 # Integer
3.14 # Float
"hello" # String
:symbol # Symbol (an immutable, interned identifier)
true / false # Boolean (TrueClass / FalseClass)
nil # NilClass — "nothing" (Ruby's null)
[1, 2, 3] # Array
{ a: 1 } # Hash (key-value)
1..10 # Range
name = "local" # local variable (lowercase)
@instance = "instance" # @ → INSTANCE variable (per object)
@@class_var = "class" # @@ → CLASS variable (shared across instances)
$global = "global" # $ → global variable (avoid)
CONSTANT = "constant" # Uppercase start → CONSTANT (convention; can change with warning)
Rubyはsigil(接頭辞)を使って変数のスコープを示します。接頭辞のない名前はローカル変数、@はインスタンス変数、@@はクラス変数、$はグローバル変数(非推奨)、大文字始まりは定数です。これはRubyの特徴的な点で、接頭辞を見ればスコープが一目で分かります。
# in Ruby, ONLY false and nil are falsy — EVERYTHING else is truthy
puts "truthy" if 0 # prints — 0 is TRUTHY in Ruby! (unlike many languages)
puts "truthy" if "" # prints — empty string is truthy too
puts "falsy" unless nil # nil is falsy
Rubyでは**falseとnilだけがfalsy(偽)**であり、0、""、[]はすべてtruthy(真)です(0や空の値をfalsyとする多くの言語とは異なります)。これはよくある落とし穴です。
Rubyの変数と基本的な型を理解することは、日常的に欠かせない基礎知識です。
Rubyは動的型付け言語であり(変数はどんな値でも保持し、型宣言は不要)、特徴的なのは変数のスコープを示すために命名規則(sigil)を使う点です。@はインスタンス変数、@@はクラス変数、$はグローバル変数、大文字は定数を表すため、変数の接頭辞を見ればスコープが一目で分かります。これはRubyを正しく読み書きするうえで重要です(特にクラスで常に使われる@instance変数)。
基本的な型(Rubyの純粋なオブジェクト指向モデルではすべてオブジェクト)を知ること、特に特徴的なSymbol型を知ることは、データを扱ううえで必要です。
特に理解しておくべき重要な癖がRubyの真偽性です。falseとnilだけがfalsyであり、それ以外(0、""、[]を含む)はすべてtruthyです。これは多くの言語(0や空の値がfalsyとなる)とは異なり、他言語から来た開発者にとってよくあるバグの原因となります。
動的型付け、スコープを示す命名規則、基本的な型、そして特にfalseとnilだけが偽となる真偽性のルールを理解することは、正しいRubyを書きよくある落とし穴を避けるための土台であり、この言語にとって必須の知識です。