Go で文字列を Int64 に変換する

Jay Singh 2022年8月23日
Go で文字列を Int64 に変換する

int は一般にインデックス、長さ、または容量に使用されます。int 型は常に、配列の最大長を処理するのに十分な大きさです。

データ型 int8、int16、int32、および int64(およびそれらの符号なしのいとこ)が最も優れています。メモリが問題にならない場合は、int64 が最も一般的な選択肢です。

この記事では、文字列を int64 に変換します。

Go で Parselnt() を使用して文字列を Int64 に変換する

strconv.ParseInt() は、10 進文字列(基数 10)を解析し、それが int64 に収まるかどうかをチェックする Go の組み込み関数です。実装は int のサイズを決定します。32 ビットまたは 64 ビットの場合があるため、int から int64 に切り替えてもデータが失われることはありません。

この例では、strconv.ParseInt() を使用して、10 進文字列(基数 10)を 64 ビットの符号付き整数に変換し、それが適合することを確認します。

package main

import (
    "fmt"
    "strconv"
)

func main() {
    str := "10101101"
    n, err := strconv.ParseInt(str, 10, 64)
    if err == nil {
        fmt.Printf("%d is type %T", n, n)
    }
}

出力:

10101101 is type int64

さらに、ParseInt は文字列を変換し、指定されたベース(0、2 から 36)およびビットサイズ(0 から 64)で適切な値を返します。このメソッドは文字列パラメーターを受け取り、基本パラメーターを使用して、それを int 型に変換します。

デフォルトでは Int64 値を返します。

package main

import (
    "fmt"
    "reflect"
    "strconv"
)

func main() {
    strVar := "110"

    intVar, err := strconv.ParseInt(strVar, 0, 8)
    fmt.Println(intVar, err, reflect.TypeOf(intVar))

    intVar, err = strconv.ParseInt(strVar, 0, 16)
    fmt.Println(intVar, err, reflect.TypeOf(intVar))

    intVar, err = strconv.ParseInt(strVar, 0, 32)
    fmt.Println(intVar, err, reflect.TypeOf(intVar))

    intVar, err = strconv.ParseInt(strVar, 0, 64)
    fmt.Println(intVar, err, reflect.TypeOf(intVar))
}

出力:

110 <nil> int64
110 <nil> int64
110 <nil> int64
110 <nil> int64

関連記事 - Go String