No mundo da programação Go, o caractere de sublinhado ( _ ) que precede uma instrução de importação tem um significado específico. Vamos explorar seu significado e uso.
O sublinhado (_ ) em uma instrução de importação indica que o pacote é importado apenas por seus efeitos colaterais. Ele não importa nenhuma função, método ou variável do pacote.
Alguns pacotes Go têm funções de inicialização (normalmente chamadas init() ) que executam ações quando o pacote é importado. Essas ações podem incluir o registro de drivers de banco de dados personalizados, a inicialização de variáveis globais ou a configuração de registro.
Para importar um pacote para seus efeitos colaterais e nada mais, o identificador de sublinhado é usado como um nome de pacote explícito na instrução de importação. Por exemplo, considere o trecho de código de go-sqlite3:
import ( "database/sql" "fmt" _ "github.com/mattn/go-sqlite3" "log" "os" )
Nesse caso, a importação de sublinhado de "github.com/mattn/go-sqlite3" registra o driver sqlite3 com a biblioteca sql padrão. Isso permite que você use sqlite3 como uma conexão de banco de dados em seu código sem precisar importar nenhuma função desse pacote.
No caso do go-sqlite3, o seguinte código de inicialização é executado quando o pacote é importado:
sql.Register("sqlite3", &SQLiteDriver{})
Este registro permite que você use sqlite3 assim:
db, err := sql.Open("sqlite3", "./foo.db")
As instruções de importação de sublinhado em Go são uma maneira conveniente de importar um pacote apenas por seus efeitos colaterais. Eles permitem que você aproveite as rotinas de inicialização de pacotes sem importar explicitamente funções ou variáveis. Ao compreender a finalidade e o uso das importações de sublinhado, você pode gerenciar com eficácia as dependências de pacotes e os efeitos colaterais em seus projetos Go.
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