Conversão de tipos de slices de interfaces em Go: por que isso não funciona?
Olá a todos! Sou novo em Go e não consigo entender a conversão de tipos para slices de interfaces. Tenho uma função que aceita `[]interface{}`, mas quero passar a ela um slice de um tipo específico, como `[]string`. Por que o Go não permite fazer isso diretamente?
Aqui está um exemplo de código que não funciona:
```go
package main
import "fmt"
func printAll(items []interface{}) {
for _, item := range items {
fmt.Println(item)
}
}
func main() {
names := []string{"Alice", "Bob", "Charlie"}
// Erro: cannot use names (type []string) as type []interface{} in argument to printAll
printAll(names)
}
```
Eu entendo que `string` implementa a interface `interface{}`, mas por que `[]string` não pode ser usado como `[]interface{}`? Na documentação fala sobre covariância, mas não entendo completamente como aplicar isso na prática. Preciso passar diferentes tipos de slices para uma mesma função. Como resolver esse problema corretamente? Talvez seja necessário usar...
No answers yet.
Faça login para deixar uma resposta
Blogs
Como monitorar o ts-node e recarregar ao alterar arquivos: guia de erros
Como funciona o for-each em Java: análise com exemplos do iniciante ao profissional
GetHashCode e Equals: por que sua sobrescrita é crítica para C#
Classes estáticas em Java: o que são e como funcionam internamente