В Go (или Golang) тип int представляет целое число со знаком, а тип int64 представляет 64-битное целое число со знаком. Существует множество сценариев, в которых вам может потребоваться преобразовать int в int64 в вашем коде. В этой статье мы рассмотрим различные методы выполнения такого преобразования на примерах кода.
Метод 1: использование преобразования типов
Самый простой способ преобразовать int в int64 — использовать преобразование типов. Go предоставляет встроенный синтаксис для преобразования между совместимыми типами.
package main
import "fmt"
func main() {
var num int = 42
var num64 int64 = int64(num)
fmt.Println(num64)
}
Метод 2: использование пакета strconv
Пакет strconv в Go предоставляет функции для преобразования строк в различные типы, включая int64. Преобразовав int в строку и затем проанализировав его как int64, мы можем добиться преобразования.
package main
import (
"fmt"
"strconv"
)
func main() {
var num int = 42
numStr := strconv.Itoa(num)
num64, _ := strconv.ParseInt(numStr, 10, 64)
fmt.Println(num64)
}
Метод 3: использование сдвига битов.
Другой подход к преобразованию целого числа в int64 — использование сдвига битов. Мы можем сдвинуть биты значения int влево на 0 бит, фактически оставив значение неизменным, но изменив его тип на int64.
package main
import "fmt"
func main() {
var num int = 42
num64 := int64(num << 0)
fmt.Println(num64)
}
Метод 4: использование пакета Math/Big
Если вы имеете дело с большими числами, которые невозможно представить с помощью int, вы можете использовать пакет math/big. Этот пакет обеспечивает арифметику произвольной точности, включая преобразование между различными целочисленными типами.
package main
import (
"fmt"
"math/big"
)
func main() {
var num int = 42
num64 := big.NewInt(int64(num))
fmt.Println(num64)
}
В этой статье мы рассмотрели различные методы преобразования int в int64 в Golang. Независимо от того, предпочитаете ли вы преобразование типов, пакет strconv, сдвиг битов или пакет math/big, у вас есть несколько вариантов на выбор в зависимости от ваших конкретных требований. Понимание этих методов преобразования поможет вам эффективно обрабатывать различные целочисленные типы в ваших программах Go.