1. ホーム
  2. string

[解決済み] Golangで文字列をint64に変換する

2022-12-25 14:02:55

質問

文字列をint64に変換したい。この場合 strconv パッケージは Atoi 関数です。文字列をintにキャストして返してくれるようです。

// Atoi is shorthand for ParseInt(s, 10, 0).
func Atoi(s string) (i int, err error) {
        i64, err := ParseInt(s, 10, 0)
    return int(i64), err
}

ParseIntは実際にはint64を返します。

func ParseInt(s string, base int, bitSize int) (i int64, err error){
     //...
}

では、文字列からint64を取得したい場合、Atoiを使わず、ParseIntを使えばいいのでしょうか?それとも、どこかにAtio64が隠されているのでしょうか?

どのように解決するのですか?

Atoi64はありません。また、ParseIntの最後のパラメータとして64を渡す必要があります。さもないと、32ビットシステムで期待される値を生成しないかもしれません。

省略した例を追加します。

var s string = "9223372036854775807"
i, _ := strconv.ParseInt(s, 10, 64)
fmt.Printf("val: %v ; type: %[1]T\n", i)

https://play.golang.org/p/FUC8QO0-lYn