読者です 読者をやめる 読者になる 読者になる

uokadaの見逃し三振は嫌いです

ここで述べられていることは私の個人的な意見に基づくものであり、私が所属する組織には一切の関係はありません。

Goで16進数を10進数に変換する

strconv パッケージ - golang.jp

ググってると strconv.Btoui64 使えばいけるみたいなことが書いてあるんだが 実行してみるとundefinedってなってしまう。

$ go run hoge.go
# command-line-arguments
./hoge.go:12: undefined: strconv.Btoui64

$ go version
go version go1.1.1 darwin/amd64

Go 1 Release Notes - The Go Programming Language

調べていくとGo1のリリースの時にstrconvがリファクタリングされていることがわかった。 1.1.xで変換するのはこんな感じ。

package main

import (
        "fmt"
        "strconv"
)

func main() {
        v, _ := strconv.ParseUint("aa", 16,0)
        fmt.Printf("%V\n", v)
}
% go run hex2int.go
%!V(uint64=170)

またドキュメントに騙された気がする。 golangが流行るためにも日本語ドキュメントはもっと充実してくれないとダメだろうな。

けど、英語である程度調べられて自力でこれぐらいの問題を解決する人が Go言語 を使うにはちょうどいいのかも。