Можливі дублікати:
Викинути виняток при повторному призначенні константи в Ruby?
Коли ми використовуємо велику букву в рубіні, це константа: CONSTANT = "alive"
. Коли я змінюю цю "передбачувану" константу, вона видає помилку, але все одно її змінює:
(irb):27: warning already initialized constant CONSTANT
=> "13"
.
Це здається дивною поведінкою. Якщо я розробляю гру і мені потрібно, щоб значення було постійним, скажіть: Cheatcode_health = true
, і випадково значення присвоюється як false
або 0
, це було б незвичною поведінкою. Це може мати багато наслідків. Коротше кажучи, чи є справжня константа в Ruby?
Відповіді:
2 для відповіді № 1Рубі - дуже дозвільна мова. Неможливо викликати помилку, якщо ви повторно призначите константу.
Єдиним обхідним шляхом є створення власного методу для присвоєння значень константам, і нехай цей метод виконує перевірку за вас.
Інші супутні питання:
- Викинути виняток при повторному призначенні константи в Ruby?
- Чи можете ви попросити ruby сприймати попередження як помилки?