Posso digitar uma fatia de valores de interface?
Eu estou tentando digitar afirmação de um[]Node
, para[]Symbol
. No meu código,Symbol
implementa oNode
interface.
Aqui está algum código circundante:
<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>
Aqui está o erro que recebo:
<code>./builtins.go:47: invalid type assertion: args.([]Symbol) (non-interface type []Node on left) </code>
Tenho certeza que há uma boa razão para isso. Qual é a melhor maneira de prosseguir?