Avatar ·

Como criar um literal *int64 em Go? Inicialização direta de ponteiro para número

Olá a todos! Comecei a estudar Go recentemente e me deparei com um problema ao trabalhar com ponteiros. Preciso passar um ponteiro para int64 para uma função, mas não quero criar uma variável separada. Por exemplo, tenho a função: ```go func SetValue(val *int64) { *val = 42 } ``` Quero chamá-la assim: ```go SetValue(&123) // Erro: cannot take address of 123 ``` Mas o compilador gera um erro, porque não é possível obter o endereço de um literal. Tentei: ```go SetValue(&int64(123)) // Também erro ``` E até: ```go SetValue(&(int64(123))) // Não funciona ``` Como criar corretamente um literal *int64 em tempo real? Preciso passar um ponteiro para o número 123 sem declarar uma variável separada. Em outras linguagens, como C, isso é feito simplesmente: &(int){123}. Existe um equivalente em Go? Ou apenas através de uma variável auxiliar? Agradeço desde já pela ajuda! <<>>

Problema: Por que não é possível obter o endereço de um literal?

Em Go, você não pode obter o endereço de um literal (por exemplo,