Как я могу создать таблицу отправки в Boo? - PullRequest
1 голос
/ 18 июля 2009

Я бы хотел сохранить функцию в хеш-таблице. Я могу создать карту как:

hash = {}
hash["one"] = def():
   print "one got called"

Но я не могу назвать это:

func = hash["one"]
func()

Это приводит к следующему сообщению об ошибке: Невозможно вызвать выражение для типа «объект» . Ни Invoke, ни Call не работают.

Как я могу это сделать? Из того, что я предполагаю, хранимая функция должна быть приведена к чему-либо.

Ответы [ 2 ]

3 голосов
/ 19 июля 2009

Вы также можете использовать универсальный словарь, чтобы избежать необходимости приведения к вызываемому:

import System.Collections.Generic

hash = Dictionary[of string, callable]()
hash["one"] = def():
    print "got one"

fn = hash["one"]
fn()
2 голосов
/ 18 июля 2009

Вам нужно привести к вызываемому типу :

hash = {}
hash["one"] = def ():
   print "one got called"

func = hash["one"] as callable
func()
...