История изменений
Исправление dem, (текущая версия) :
Не ну если ты сравниваешь строки в case или ищешь в статическом dict то кто мешает компилятору сгенерировать 1 и тот же код? Потому я не понимаю чем отличается
h={
'a': func1,
'b': func2}
h['a']()
от
if x=='a':
func1()
elif x=='b':
func2()
Эти записи равносильны с точки зрения логики. Возможно оптимизатор их и не приравняет. Но ведь уже было показано когда LUA оказался в разы быстрее C.
Потому это все просто гадание на кофейной гуще.... Надо делать бенчмарк и смотреть.
Исходная версия dem, :
Не ну если ты сравниваешь строки в case или ищешь в статическом dict то кто мешает компилятору сгенерировать 1 и тот же код? Потому я не понимаю чем отличается
h={
'a': func1(),
'b': func2()}
h['a']()
от
if x=='a':
func1()
elif x=='b':
func2()
Эти записи равносильны с точки зрения логики. Возможно оптимизатор их и не приравняет. Но ведь уже было показано когда LUA оказался в разы быстрее C.
Потому это все просто гадание на кофейной гуще.... Надо делать бенчмарк и смотреть.