Как я могу создать таблицу отправки в Boo?
Я хотел бы иметь возможность хранить функцию в хеш-таблице. Я могу создать карту как:
hash = {}
hash["one"] = def():
print "one got called"
Но я не могу это назвать
func = hash["one"]
func()
Это приводит к следующему сообщению об ошибке: Невозможно вызвать выражение для типа "объект". ни Invoke
или же Call
работает.
Как мне это сделать? Из того, что я предполагаю, хранимая функция должна быть приведена к чему-либо.
2 ответа
Решение
Вы должны привести к типу Callable:
hash = {}
hash["one"] = def ():
print "one got called"
func = hash["one"] as callable
func()
Вы также можете использовать универсальный словарь, чтобы избежать необходимости приведения к вызываемому:
import System.Collections.Generic
hash = Dictionary[of string, callable]()
hash["one"] = def():
print "got one"
fn = hash["one"]
fn()