【发布时间】:2012-05-15 18:11:17
【问题描述】:
我正在尝试将断言从 []Node 键入到 []Symbol。在我的代码中,Symbol 实现了Node 接口。
这里是一些周边代码:
43 func applyLambda(args []Node, env Env) Node {
44 if len(args) > 2 {
45 panic("invalid argument count")
46 }
47 fixed, rest := parseFormals(args.([]Symbol))
48 return Func{
49 Body: args[1],
50 FixedVarNames: fixed,
51 RestVarName: rest,
52 }
53 }
这是我得到的错误:
./builtins.go:47: invalid type assertion: args.([]Symbol) (non-interface type []Node on left)
我相信这是有充分理由的。最好的方法是什么?
【问题讨论】:
标签: interface type-conversion go type-assertion