Когда 'eval' в Ruby оправдан?
Является 'Eval» должно быть противно? " вдохновил это:
В основном все согласны с тем, чтоeval
это плохо, и в большинстве случаев есть более элегантная / более безопасная замена.
Поэтому я хотел спросить: еслиeval
часто используется неправильно, действительно ли это необходимо в качестве языковой функции? Делает ли это больше зла, чем добра?
Лично единственное место, где я нахожу это полезным, это интерполировать строки, представленные в файле конфигурации.
Изменить: Цель этого вопроса состоит в том, чтобы получить как можно больше реальных случаев, когда eval является единственным или лучшим решением. Так что, пожалуйста, нене идти в "должен ли язык ограничивать программистатворчество направление.
Edit2: И когда я говорюeval
Конечно, я имею в видуeval
не передавая рубиновый блокinstance_eval
или же .class_eval