FreeCamp

変数・定数について

Rubyを勉強するときに初めて登場するのが変数・定数です。
プログラミングを始める上でも変数・定数は基礎知識となるので、ここでマスターしましょう。
Rubyの変数と定数はそれぞれ変数名の頭文字で区別します。大文字, 小文字, @から始まるなどです。
変数と定数については公式リファレンスが存在するので、今回はこちらを噛み砕いてご説明します。

目次

  1. 変数について
  2. 定数について

1. 変数について

Rubyの変数はいくつか種類があります。

  • ローカル変数
  • インスタンス変数
  • クラス変数
  • グローバル変数

これらの変数の使い方をマスターし、プログラミング言語の基礎を習得しましょう。

ローカル変数(定義)

記法:頭文字が小文字か_から始まる(数字で始めてはいけない)
   例:sample, _sample
スコープ(利用できる範囲):宣言した位置からその変数が宣言されたブロック、メソッド定義、またはクラス/モジュール定義の終りまで

ローカル変数(使い方)

test = 'hello' # 'hello'という文字列をtestに代入
puts test # testを出力

# hoge関数宣言
def hoge
  test2 = 'world' # 'world'という文字列をtestに代入
  puts test2 # test2を出力
end

hoge # 関数呼び出し

### 出力結果
hello
world

スコープの制約があるため、以下のようにはできない。

test = 'hello' # 'hello'という文字列をtestに代入

# hoge関数宣言
def hoge
  puts test # testを出力(エラーが起きる)
end

hoge # 関数呼び出し

### 出力結果
wrong number of arguments (given 0, expected 2..3) (ArgumentError)

インスタンス変数(定義)

記法:@から始まる
スコープ(利用できる範囲):クラスのメソッド内でしか使えない

インスタンス変数(使い方)

class Test
  def initialize(name)
    @name = name
  end
 
  def test
    puts @name
  end
end
 
test1 = Test.new("hoge")
test2 = Test.new("bar")

test1.test
test2.test

### 出力結果
hoge
bar

クラス変数(定義)

記法:@@から始まる
スコープ(利用できる範囲):宣言したクラス内

クラス変数(使い方)

class Test
  @@test = 'test'
  def initialize(name)
    @name = name
  end
 
  def test
    puts @name
    puts @@test
  end
end
 
test1 = Test.new("hoge")
test2 = Test.new("bar")

test1.test
test2.test

### 出力結果
hoge
test
bar
test

グローバル変数(定義)

記法:$から始まる
スコープ(利用できる範囲):コードの中どこからでも参照できる

グローバル変数(使い方)

$test = 'hello' # 'hello'という文字列を$testに代入

# hoge関数宣言
def hoge
  puts $test # $testを出力
end

hoge # 関数呼び出し

### 出力結果
hello

2. 定数について

定数の特徴として再代入不可能という制約があります。
一度宣言した定数は更新することができないという制約です。

定数(定義)

記法:大文字アルファベットから始まる(全て大文字にすることが多い)
スコープ:グローバル変数と同様

定数(使い方)

TEST = 'hello' # 'hello'という文字列をTESTに代入 

# hoge関数宣言
def hoge
  puts TEST # TESTを出力 
end

hoge # 関数呼び出し

### 出力結果
hello

覚書のようにつらつら書きましたが、大まかな使い方は以上です。
完璧ではないので、日々更新かけていきます。