Avatar ·

Comment créer un littéral *int64 en Go ? Initialisation directe d'un pointeur vers un nombre

Bonjour à tous ! Je viens de commencer à apprendre Go et j'ai rencontré un problème avec les pointeurs. Je dois passer un pointeur vers int64 à une fonction, mais je ne veux pas créer de variable séparée. Par exemple, j'ai une fonction : ```go func SetValue(val *int64) { *val = 42 } ``` Je veux l'appeler ainsi : ```go SetValue(&123) // Erreur : cannot take address of 123 ``` Mais le compilateur génère une erreur car on ne peut pas prendre l'adresse d'un littéral. J'ai essayé : ```go SetValue(&int64(123)) // Erreur aussi ``` Et même : ```go SetValue(&(int64(123))) // Ne fonctionne pas ``` Comment créer correctement un littéral *int64 à la volée ? Je dois passer un pointeur vers le nombre 123 sans déclarer de variable séparée. Dans d'autres langages, comme en C, cela se fait simplement : &(int){123}. Existe-t-il un équivalent en Go ? Ou seulement via une variable auxiliaire ? Merci d'avance pour votre aide ! <<>>

Problème : Pourquoi ne peut-on pas prendre l'adresse d'un littéral ?

En Go, vous ne pouvez pas prendre l'adresse d'un littéral (par exemple,