Я пытаюсь ввести assert из []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)
Я уверен, что для этого есть веская причина. Как лучше поступить?