Tipos e valores de reflexão em Go
Reflexões em Go permitem que os desenvolvedores inspecionem e manipulem tipos e valores em tempo de execução. Compreender suas distinções é crucial para o uso eficaz da reflexão.
Tipo versus valor na reflexão
Na reflexão, reflect.TypeOf(i) retorna um objeto reflect.Type , enquanto reflect.ValueOf(i) retorna um objeto reflect.Value.
reflect.Type
reflect.Value
Example
In o trecho de código:
func show(i interface{}) {
switch t := i.(type) {
case *Person:
t := reflect.TypeOf(i) // Get the type of *Person
v := reflect.ValueOf(i) // Get the value of i
tag := t.Elem().Field(0).Tag
name := v.Elem().Field(0).String()
}
}
Ao compreender a diferença entre tipos e valores na reflexão, os desenvolvedores podem aproveitar o poder da reflexão em vários cenários, incluindo introspecção, invocação de método dinâmico e serialização de dados.
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