我希望能够将函数存储在哈希表中。我可以创建一个像这样的地图:
hash = {}
hash["one"] = def():
print "one got called"
但我不能称之为:
func = hash["one"]
func()
这会产生以下错误消息:无法在类型 'object' 上调用表达式。既不工作Invoke
也不Call
工作。
我该怎么做 ?从我的猜测来看,存储的函数应该被转换为某种东西。
我希望能够将函数存储在哈希表中。我可以创建一个像这样的地图:
hash = {}
hash["one"] = def():
print "one got called"
但我不能称之为:
func = hash["one"]
func()
这会产生以下错误消息:无法在类型 'object' 上调用表达式。既不工作Invoke
也不Call
工作。
我该怎么做 ?从我的猜测来看,存储的函数应该被转换为某种东西。
您还可以使用通用 Dictionary 来防止需要转换为可调用对象:
import System.Collections.Generic
hash = Dictionary[of string, callable]()
hash["one"] = def():
print "got one"
fn = hash["one"]
fn()
您需要转换为Callable 类型:
hash = {}
hash["one"] = def ():
print "one got called"
func = hash["one"] as callable
func()