2009-07-18 3 views
1

해시 테이블에 함수를 저장하고 싶습니다. 내가 좋아하는지도를 만들 수 있습니다Boo에서 디스패치 테이블을 만들려면 어떻게해야합니까?

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

을하지만 그것을 호출 할 수 아니에요 :

func = hash["one"] 
func() 

이 다음과 같은 오류 메시지가 생성됩니다 유형에 식을 호출 할 수 없습니다 '를 개체 '. Invoke 또는 Call도 작동하지 않습니다.

어떻게하면됩니까? 내가 추측하고있는 바에 따르면, 저장된 함수는 무언가에 캐스트되어야합니다.

답변

2

당신은 Callable type으로 캐스팅해야합니다

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

func = hash["one"] as callable 
func() 
+0

감사합니다! 그게 효과가 있었어. – Geo

3

당신은 또한 호출에 캐스팅 필요성을 방지하기 위해 일반 사전을 사용할 수

import System.Collections.Generic 

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

fn = hash["one"] 
fn()