サンプルで学ぶ Go 言語:Number Parsing

文字列から数値へのパースは、多くのプログラムに現れるパターンである。 ここでは、Go でのやり方を紹介する。

package main

strconv パッケージを使って数をパースできる。

import (
    "fmt"
    "strconv"
)
func main() {

ParseFloat64 は何ビットの精度でパースするかを指定する。

    f, _ := strconv.ParseFloat("1.234", 64)
    fmt.Println(f)

ParseInt0 は基数を文字列から推測させることを表す。 64 は、結果が64ビットに収まることを要求する。

    i, _ := strconv.ParseInt("123", 0, 64)
    fmt.Println(i)

ParseInt は8進記数法で書かれた文字列をパースできる。

    d, _ := strconv.ParseInt("0x1c8", 0, 64)
    fmt.Println(d)

ParseUint もある。

    u, _ := strconv.ParseUint("789", 0, 64)
    fmt.Println(u)

Atoi は基数が10の int 型の値をパースするときに便利である。

    k, _ := strconv.Atoi("135")
    fmt.Println(k)

パースする関数は、入力の形式が正しくないとエラーを返す。

    _, e := strconv.Atoi("wat")
    fmt.Println(e)
}
$ go run number-parsing.go 
1.234
123
456
789
135
strconv.ParseInt: parsing "wat": invalid syntax

パース対象としてこちらも頻出である URL をパースするやり方を紹介する。

次の例:URL Parsing