Sök…


Syntax

  • MY_CONSTANT_NAME = "mitt värde"

Anmärkningar

Konstanter är användbara i Ruby när du har värden som du inte vill ändras felaktigt i ett program, t.ex. API-nycklar.

Definiera en konstant

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

Konstant namn börjar med versaler. Allt som börjar med versaler betraktas som constant i Ruby. Så class och module är också konstant. Bästa praxis är att använda alla stora bokstäver för att förklara konstant.

Ändra en konstant

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

Ovanstående kod resulterar i en varning, eftersom du bör använda variabler om du vill ändra deras värden. Men det är möjligt att ändra en bokstav i taget i en konstant utan någon varning, så här:

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

Nu, efter att ha ändrat den andra bokstaven i MY_CONSTANT , blir det "Hullo, world" .

Konstanter kan inte definieras i metoder

def say_hi
  MESSAGE = "Hello"
  puts MESSAGE
end

Ovanstående kod resulterar i ett fel: SyntaxError: (irb):2: dynamic constant assignment .

Definiera och ändra konstanter i en klass

class Message
  DEFAULT_MESSAGE = "Hello, world"

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

Konstanten DEFAULT_MESSAGE kan ändras med följande kod:

Message::DEFAULT_MESSAGE = "Hullo, world"


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow