サーチ…


構文

  • MY_CONSTANT_NAME = "私の値"

備考

定数は、APIキーなどのプログラムで誤って変更したくない値がある場合にRubyで便利です。

定数を定義する

MY_CONSTANT = "Hello, world" # constant
Constant = 'This is also constant' # constant
my_variable = "Hello, venus" # not constatn

定数名は大文字で始まります。大文字で始まるものはすべてRubyではconstantとみなされます。したがって、 classmoduleも一定です。ベストプラクティスは、定数を宣言するすべての大文字を使用することです。

定数を変更する

MY_CONSTANT = "Hello, world"
MY_CONSTANT = "Hullo, world"

変数を使用して値を変更する必要があるため、上記のコードでは警告が表示されます。しかし、次のように警告なしで定数で一度に1文字を変更することは可能です:

MY_CONSTANT = "Hello, world"
MY_CONSTANT[1] = "u"

今、 MY_CONSTANTの2番目の文字を変更すると、 "Hullo, world"ます。

メソッド内で定数を定義することはできません

def say_hi
  MESSAGE = "Hello"
  puts MESSAGE
end

上記のコードはエラーになります: SyntaxError: (irb):2: dynamic constant assignment

クラスの定数の定義と変更

class Message
  DEFAULT_MESSAGE = "Hello, world"

  def speak(message = nil)
    if message
      puts message
    else
      puts DEFAULT_MESSAGE
    end
  end
end

定数DEFAULT_MESSAGEは、次のコードで変更できます。

Message::DEFAULT_MESSAGE = "Hullo, world"


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow