Kiedy uzasadnione jest `eval` w Ruby?
"Czy „eval” ma być paskudny?„zainspirowało to:
Przeważnie wszyscy się z tym zgadzająeval
jest zły, aw większości przypadków wymiana jest bardziej elegancka / bezpieczniejsza.
Chciałem więc zapytać: czyeval
jest często nadużywany, czy jest naprawdę potrzebny jako funkcja językowa? Czy robi więcej zła niż dobra?
Osobiście jedynym miejscem, które uważam za przydatne, jest interpolowanie ciągów znaków dostarczanych w pliku konfiguracyjnym.
Edytuj: Celem tego pytania jest uzyskanie jak największej liczby przypadków rzeczywistych, gdy eval jest jedynym lub najlepszym rozwiązaniem. Więc proszę, nie wchodźcie w kierunek „czy język powinien ograniczać kreatywność programisty”.
Edit2: A kiedy mówięeval
, oczywiście, mówię o tymeval
ciąg znaków, nie przekazując bloku ruby doinstance_eval
lubclass_eval
.