Avatar ·

O que significa o símbolo de sublinhado antes da importação de um pacote em Go?

Olá a todos! Comecei a estudar Go recentemente e me deparei com uma construção que não entendi. No código de outra pessoa, vi uma importação de pacote com o símbolo de sublinhado (underscore) antes do nome do pacote: ```go import ( "fmt" _ "github.com/lib/pq" "database/sql" ) ``` Eu entendo que `_` em Go é usado como um identificador vazio (blank identifier) quando queremos ignorar o valor de retorno de uma função. Mas o que ele faz na importação? Afinal, se importamos um pacote, normalmente o usamos no código, mas aqui está claramente escrito que não o usamos (caso contrário, o compilador daria erro). Tentei remover essa importação, e o código parou de funcionar — o compilador deu erro informando que o driver para PostgreSQL não foi encontrado. Mas o pacote `pq` não é usado em nenhum lugar do código. Como isso é possível? Para que serve essa importação e como ela funciona? Explique, por favor, em palavras simples. Estou acostumado com Python, onde importar sempre significa usar o módulo explicitamente, mas aqui parece mágica. <<>>

O que é