Goでstring型の数字文字列をint型に変換するstrconv.ParseIntを使う

thumnail
2020-09-16

Goを書いていて、既に定義されているメソッドがint型で引数を受け取るのに、その引数に渡したい値の型がstring型だった場合などに使うケースが度々あるかと思います。そのような場面で、string型の文字列の数字をint型に変換するstrconvパッケージのParseIntメソッドを使ったのでそのメモを備忘録として残しておきます。

string型の数値をint64型の数値に変換する

第1引数に変換したいstring型の数値、第2引数に基数、第3引数はビット数を指定します。通常使うとしたら、第2引数は10進数、第3引数は64ビットを指定するかと。

package main

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

func main() {
    id, _ := strconv.ParseInt("100", 10, 64)
    fmt.Println(id)                 // 100
    fmt.Println(reflect.TypeOf(id)) // int64
}

string型の100が、int64型の100に変換されます。

空文字をint64型に変換してみる

業務で空文字をparseしてしまったときにどうなるのか一瞬気になったので、実際に空文字をparseして確かめてみました。

package main

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

func main() {
    id, _ := strconv.ParseInt("", 10, 64)
    fmt.Println(id)                 // 0
    fmt.Println(reflect.TypeOf(id)) // int64
}

空文字を渡した場合は0で返ってきます。Goの変数は全て初期値で初期化されるのでint64の場合、0で初期化されるからですね。

parseIntの詳細な説明はGoの公式ドキュメントに載ってます。

https://golang.org/pkg/strconv/#example_ParseInt

この記事内容とは関係ありませんが、筆者である僕が普段愛用しているPC周りのアイテムを別記事で紹介しているので、もし興味があればご覧になってください。

現在使用しているディスプレイ・ヘッドフォン・キーボードなどを紹介

KATUBLO

Copyright since 2018 KATUO All Rights Reserved.