문제

해시 가능에 함수를 저장할 수 있기를 원합니다. 다음과 같은 맵을 만들 수 있습니다.

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

그러나 나는 그것을 부를 수 없습니다 :

func = hash["one"]
func()

다음 오류 메시지가 발생합니다. 'Object'유형에서 표현식을 호출 할 수 없습니다.. 어느 것도 아니다 Invoke 또는 Call 공장.

어떻게하니 ? 내가 추측 한 바에 따르면, 저장된 기능은 무언가로 캐스트되어야합니다.

도움이 되었습니까?

해결책

당신은 a에 캐스팅해야합니다 호출 가능한 유형:

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()
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top