Konvertieren von uint64 in int64 für PostgreSQL-Speicher
Um die Speicherung eines uint64-Werts in PostgreSQL zu handhaben, das nur vorzeichenbehaftete 64-Bit-Ganzzahlen unterstützt (BIGINT) ist eine einfache Typkonvertierung am effektivsten. Dieser Ansatz behält die binäre Darstellung des uint64-Werts bei, während er in int64 umgewandelt wird.
Betrachten Sie den folgenden Go-Code:
import ( "fmt" ) func main() { i := uint64(0xffffffffffffffff) // Example uint64 value // Cast the uint64 to int64 using a type conversion i2 := int64(i) fmt.Println(i, i2) }
Dieser Code gibt Folgendes aus:
18446744073709551615 -1
Wie Sie sehen, ist die Typkonvertierung des uint64-Werts (18446744073709551615) in einen int64-Wert (-1) gelungen. Dies liegt daran, dass die numerische Konvertierung zwischen uint64 und int64 nicht die Speicherdarstellung, sondern nur die Typinterpretation ändert.
Eine Einschränkung ist jedoch zu beachten: Wenn Sie versuchen, eine untypisierte Ganzzahlkonstante zu konvertieren, die den int64-Wert überschreitet Bereich, tritt ein Fehler bei der Kompilierung auf. Zum Beispiel:
i3 := int64(0xffffffffffffffff) // Compile time error!
Dieser Fehler tritt auf, weil der konstante Wert 0xffffffffffffffff den int64-Wertebereich (0x7fffffffffffffff) überschreitet.
Das obige ist der detaillierte Inhalt vonWie speichere ich uint64-Werte sicher im int64-Feld von PostgreSQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!