Поиск…


Синтаксис

  • MY_CONSTANT_NAME = "мое значение"

замечания

Константы полезны в Ruby, когда у вас есть значения, которые вы не хотите ошибочно менять в программе, например, ключи API.

Определить константу

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

Константное имя начинается с заглавной буквы. Все, что начинается с заглавной буквы, считается constant в Ruby. Таким образом, class и module также постоянны. Лучшей практикой является использование всей заглавной буквы для объявления константы.

Изменить константу

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

Приведенный выше код приводит к предупреждению, потому что вы должны использовать переменные, если хотите изменить их значения. Однако можно менять одну букву за раз в константе без предупреждения, например:

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

Теперь, после замены второй буквы MY_CONSTANT , она становится "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