文字列を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ビットシステムで期待される値が生成されない場合があります。
文字列をint64の例に解析する:
// Use the max value for signed 64 integer. http://golang.org/pkg/builtin/#int64
var s string = "9223372036854775807"
i, err := strconv.ParseInt(s, 10, 64)
if err != nil {
panic(err)
}
fmt.Printf("Hello, %v with type %s!\n", i, reflect.TypeOf(i))
出力:
こんにちは、タイプ64の9223372036854775807です!