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 5 years have passed since last update.

Ruby 入門#2(変数、定数)

0
Posted at

Rubyの勉強アウトプット
今回は、変数、定数について記載します。

変数

命名ルール

●先頭文字を大文字にすることはできない。
●1文字目に数字を使用することはできない。
●宣言と初期化を同時に行うこと(変数の宣言のみはNG)

変数種別

●変数の1文字目により、変数種別が決まります。
●種別ごとに、スコープの範囲が違います。

ローカル変数

●1文字目が、小文字または'_'で始まる変数は、ローカル変数になります。
●スコープは、定義された場所の範囲内のみ利用可能です。

name = "田中"
puts name

グローバル変数

●1文字目に、「$」をつけるとグローバル変数となります。
●スコープは、メソッドやクラスを超えて参照することができ、定義した場所に限らず、参照や変更をすることができます。

$name = "田中"

class NameClass
  def nameShow
    puts $name
  end
end

nameClass = NameClass.new
nameClass.nameShow

インスタンス変数

●1文字目に、「@」をつけるとインスタンス変数となります。
●スコープは、宣言されたクラスまたはサブクラスから参照することができます。
●オブジェクト毎に、異なる値を割り当てることができます。

class ClassName

  def setName(setName)
    @name = setName
  end

  def showName()
    puts @name
  end

end

name = ClassName.new
name.setName("田中")

name2 = ClassName.new
name2.setName("佐藤")

name.showName  #=>田中
name2.showName #=>佐藤

クラス変数

●変数の先頭に、「@@」をつけるとクラス変数となります。
●スコープは、宣言されたクラス、インスタンスメソッドから参照、変更をすることができます。
●宣言されたクラスの、全てのインスタンスで共有されます。

class ClassName

  def setName(setName)
    @name = setName
  end

  def showName()
    puts @name
  end

end

name = ClassName.new
name.setName("田中")

name2 = ClassName.new
name2.setName("佐藤")

name.showName  #=>佐藤
name2.showName #=>佐藤

定数

●先頭文字をアルファベット大文字にすると定数となります。
●Rubyでは、定数定義後に再代入を行うと、警告が発生しますが値は変更されます。

Name = "aaa"
Name = "bbb"
puts Name
# 出力
warning: already initialized constant Name
warning: previous definition of Name was here
佐藤
0
0
0

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?