Goによる例: 数値のパーシング

文字列から数値をパーシングすることは、多くのプログラムの基本的だが一般的なタスクです。Goでは次のように実行できます。

package main

組み込みパッケージのstrconvでは、数値のパーシングを提供しています。

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

ParseFloatでは、この64はパーシングする精度をビット数で指定します。

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

ParseIntの場合、0は、文字列から基数を推定することを意味します。64は、結果が64ビットに収まる必要があることを指定します。

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

ParseIntは、16進数表記の数値を認識できます。

    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

次に、もう1つの一般的なパーシングタスクであるURLについて説明します。

次の例: URLのパーシング