"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que não posso usar uma variável de tipo `*t` como uma` stringer` em go genéricos?

Por que não posso usar uma variável de tipo `*t` como uma` stringer` em go genéricos?

Postado em 2025-03-24
Navegar:820

Why Can't I Use a `*T` Type Variable as a `Stringer` in Go Generics?

Entendendo o "não pode usar a variável do tipo *t como tipo stringer no argumento" Erro em go genéricos

no snippet de código fornecido, você está tentando ser genericamente uma função que espera um parâmetro de tipo de tipo de tipo de tipo de tipo de tipo, mas está tendo uma função de um parâmetro de tipo de tipo de tipo, Em vez disso. Portanto, *t não é o mesmo que *foobar ou *bar. Atualmente, seus tipos Foo e barra implementam esse método nos receptores de ponteiros, mas *t não possui inerentemente esse método. Assert Type Segurança com a asserção do tipo (menos ideal)

    afirmam que *t implementa stringer usando qualquer (t). (Stringer) dentro da função do. Redefina a restrição e personalização de genéricos (preferidos)
  • Adicione stringer como uma restrição ao Foobar interface. interface.
  • Passe uma instância do tipo restrito como um argumento para blá. bar] interface { *T longarina } Func blá [T Foo | bar, u foobar [t] () { var t t faça (u (& t)) } func main () { blá [foo] () }
  • Neste código revisado:

A interface Foobar inclui stringer como uma restrição. Restrições.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3