Blog Article
Ruby 基礎 ~ 変数の宣言や代入について ~
こんにちは。
最近Rubyの基礎を学習してるので、学習内容をまとめました。
なにか間違いがある場合、ご指摘いただければ幸いです。
変数とは?
まず、変数とは 値を一時的に保存しておく箱 のようなものです。変数に値を代入することで、その値を後から再利用したり、変更したりできます。
変数を使う理由
- 値を再利用する:複数箇所で同じ値を使いたいときに便利。
- コードの可読性を向上させる:値に名前をつけることで、コードの意味が明確になる。
- 値を動的に変更する:変数に代入した値は後から変更可能。
変数の宣言と代入
変数の宣言
Rubyでは、変数を 宣言するだけ という概念はありません。変数は 値を代入することで自動的に宣言 されます。つまり、変数を使用する前に特別な宣言は不要です。
変数への代入
Rubyでは、 =
演算子を使って変数に値を代入します。
name = 'Ruby' # 文字列を変数に代入
age = 25 # 数字を変数に代入
上記の例では、変数 name
に 'Ruby'
という文字列を代入し、age
には 25
という数値を代入しています。これによって、それぞれの変数が値を保持するようになります。
変数の読み込み
変数に代入された値は、変数名を使って呼び出すことができます。
puts name #=> Ruby
puts age #=> 25
変数の命名規則
Rubyでは、変数の命名にはいくつかのルールがあります。
- 変数名は 小文字 か アンダースコア (_) で始める必要があります。
- 数字で始めることはできません。
- 複数の単語を組み合わせるときは、スネークケース (snake_case) を使うのが一般的です。
例:
first_name = 'John'
user_age = 30
これらのルールを守ることで、他の人が読んでもわかりやすいコードを記述できます。
変数の種類
Rubyにはいくつかの変数の種類があり、それぞれのスコープ (有効範囲)が異なります。
ローカル変数
- 一般的に使用される変数。
- 小文字 または アンダースコア で始まる。
- 宣言された ブロックやメソッドの中でのみ 有効。
def greet
greeting = 'Hello!' # ローカル変数
puts greeting
end
greet #=> Hello!
puts greeting #=> エラー(greeting はメソッドの外では使えない)
グローバル変数
- $ で始まる。
- プログラムのどこからでもアクセスできる。
$global_var = 'I am a global variable'
puts $global_var #=> I am a global variable
ただし、グローバル変数はプログラム全体に影響を与えるため、 使用は最小限 にするべきです。
インスタンス変数
- @ で始まる。
- オブジェクトのインスタンスに関連付けられた変数。
class Person
def initialize(name)
@name = name # インスタンス変数
end
def greet
puts "Hello, my name is #{@name}."
end
end
person = Person.new('John')
person.greet #=> Hello, my name is John.
クラス変数
- @@ で始まる。
- クラス全体で共有される変数。
class Person
@@species = 'Homo sapiens' # クラス変数
def self.species
@@species
end
end
puts Person.species #=> Homo sapiens
変数の再代入
Rubyでは、変数に一度代入した値を 再代入 することができます。
age = 25
age = 30 # 再代入
puts age #=> 30
この例では、最初に age
に 25
を代入し、後から 30
を再代入しています。これにより、age
の値は 30
に更新されます。
多重代入
Rubyでは、複数の変数に同時に値を代入することができます。これを 多重代入 と呼びます。
a, b, c = 1, 2, 3
puts a #=> 1
puts b #=> 2
puts c #=> 3
一度に複数の変数に値を割り当てることで、コードをシンプルにすることができます。
配列を使った多重代入
多重代入は、配列の値を変数に展開するのにも使えます。
array = [4, 5, 6]
x, y, z = array
puts x #=> 4
puts y #=> 5
puts z #=> 6
このように、配列の要素をそれぞれの変数に分けて代入することができます。