將uint64 轉換為int64 以用於PostgreSQL 儲存
處理PostgreSQL 中uint64 值的存儲,該值僅支援符號644個函數整數(BIGINT),簡單的型別轉換是最有效的。此方法在將 uint64 值轉換為 int64 時保留其二進位表示形式。
考慮以下Go 程式碼:
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) }
此程式碼輸出:
18446744073709551615 -1
如您所見,uint64 值(18446744073709551615)到1int的類型轉換成功。這是因為 uint64 和 int64 之間的數值轉換不會改變記憶體表示,而只會改變型別解釋。
但是,需要注意的是,如果您嘗試轉換超過 int64 值的無型別整數常數範圍內,就會出現編譯時錯誤。例如:
i3 := int64(0xffffffffffffffff) // Compile time error!
出現此錯誤是因為常數值 0xffffffffffffffff 溢位 int64 值範圍(0x7ffffffffffffffff)。
以上是如何在 PostgreSQL 的 int64 欄位中安全地儲存 uint64 值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!