Kann ich einen Teil der Schnittstellenwerte bestätigen?

Ich versuche zu behaupten, von einem Typ[]Nodezu[]Symbol. In meinem CodeSymbol implementiert dieNode Schnittstelle.

Hier ist etwas Umgebungscode:

<code> 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 }
</code>

Hier ist der Fehler, den ich bekomme:

<code>./builtins.go:47: invalid type assertion: args.([]Symbol) (non-interface type []Node on left)
</code>

Ich bin sicher, dass es dafür einen guten Grund gibt. Wie gehe ich am besten vor?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage