Могу ли я ввести срез значений интерфейса?

Я пытаюсь ввести 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)

Я уверен, что для этого есть веская причина. Как лучше поступить?

18
задан Matt Joiner 3 August 2016 в 06:38
поделиться