Wie mache ich ein Literal * int64 in Go?
Ich habe einen Strukturtyp mit einem*int64
Feld
type SomeType struct {
SomeField *int64
}
Irgendwann in meinem Code möchte ich ein Literal davon deklarieren (wenn ich weiß, dass der Wert 0 sein sollte oder auf eine 0 zeigt, weißt du, was ich meine)
instance := SomeType{
SomeField: &0,
}
... außer das geht nicht
./main.go:xx: cannot use &0 (type *int) as type *int64 in field value
So versuche ich das
instance := SomeType{
SomeField: &int64(0),
}
... aber das geht auch nicht
./main.go:xx: cannot take the address of int64(0)
Wie mache ich das? Die einzige Lösung, die ich finden kann, ist die Verwendung einer Platzhaltervariablen
var placeholder int64
placeholder = 0
instance := SomeType{
SomeField: &placeholder,
}
Beachten Sie das&0
Syntax funktioniertfei wenn es ein * int anstelle eines @ i*int64
.Bearbeiten: nein tut es nicht. Tut mir leid
Bearbeiten
Anscheinend war meine Frage zu vieldeutig. Ich suche einen Weg zuliterally state a *int64
. Dies kann in einem Konstruktor verwendet werden, um Literal-Strukturwerte anzugeben oder sogar als Argumente für andere Funktionen. Aber Hilfsfunktionen oder die Verwendung eines anderen Typs sind keine Lösungen, nach denen ich suche.