Avatar ·

¿Cómo crear un literal *int64 en Go? Inicialización directa de un puntero a número

¡Hola a todos! Acabo de empezar a aprender Go y me encontré con un problema al trabajar con punteros. Necesito pasar un puntero a int64 a una función, pero no quiero crear una variable separada. Por ejemplo, tengo una función: ```go func SetValue(val *int64) { *val = 42 } ``` Quiero llamarla así: ```go SetValue(&123) // Error: cannot take address of 123 ``` Pero el compilador da un error, porque no se puede tomar la dirección de un literal. Intenté: ```go SetValue(&int64(123)) // También error ``` E incluso: ```go SetValue(&(int64(123))) // No funciona ``` ¿Cómo crear correctamente un literal *int64 sobre la marcha? Necesito pasar un puntero al número 123 sin declarar una variable separada. En otros lenguajes, como C, esto se hace simplemente: &(int){123}. ¿Hay un equivalente en Go? ¿O solo a través de una variable auxiliar? ¡Gracias de antemano por la ayuda! <<>>

Problema: ¿Por qué no se puede tomar la dirección de un literal?

En Go no puedes tomar la dirección de un literal (por ejemplo,