Как я могу создать таблицу отправки в Бу?
-
18-09-2019 - |
Вопрос
Я хотел бы иметь возможность хранить функцию в хэштибеле. Я могу создать карту как:
hash = {}
hash["one"] = def():
print "one got called"
Но я не могу это назвать:
func = hash["one"]
func()
Это дает следующее сообщение об ошибке: Невозможно вызвать выражение на объект типа 'объект'. Анкет Ни один Invoke
или же Call
работает.
Как мне это сделать ? Из того, что я предполагаю, хранящаяся функция должна быть что -то подчеркнула.
Решение
Вам нужно поднять на Каллируемый тип:
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()
Не связан с StackOverflow