Тип int64
Тип int64 представляет целое число со знаком, которое занимает 64 бита
в памяти. Диапазон значений для int64 составляет от
-9223372036854775808 до 9223372036854775807.
Этот тип используется, когда требуется работа с большими целыми числами,
выходящими за пределы int32, или при работе с внешними системами,
где явно задан 64-битный формат данных.
Объявление переменной
Объявим переменную типа int64 и присвоим ей значение:
package main
import "fmt"
func main() {
var num int64 = 9223372036854775807
fmt.Println(num)
}
Результат выполнения кода:
9223372036854775807
Диапазон значений
Попробуем вывести минимальное и максимальное значение типа int64
с помощью констант из пакета math:
package main
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.MinInt64)
fmt.Println(math.MaxInt64)
}
Результат выполнения кода:
-9223372036854775808
9223372036854775807
Переполнение
При попытке присвоить значение, выходящее за пределы диапазона,
возникает ошибка компиляции. Например, попробуем присвоить число,
превышающее MaxInt64:
package main
func main() {
var num int64 = 9223372036854775808
_ = num
}
Результат выполнения кода:
"constant 9223372036854775808 overflows int64"
Арифметические операции
Выполним сложение двух чисел типа int64 и выведем результат:
package main
import "fmt"
func main() {
a := int64(1000000000)
b := int64(2000000000)
res := a + b
fmt.Println(res)
}
Результат выполнения кода:
3000000000
Преобразование типов
Преобразуем значение типа int в int64.
Обратите внимание, что на 32-битных системах тип int
занимает 32 бита, поэтому преобразование безопасно:
package main
import "fmt"
func main() {
var small int = 12345
var big int64 = int64(small)
fmt.Println(big)
}
Результат выполнения кода:
12345