Преобразование int в int64 в Golang: подробное руководство

В 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.