2019年4月9日火曜日

golang で文字列から int32 にコンバートする方法

概要

strconv.ParseInt を使います
少しクセがあったのメモがてら紹介します

環境

  • macOS 10.14.4
  • golang 1.11.5

サンプルコード

package main

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

func main() {
    b := "2000"
    bb, err := strconv.ParseInt(b, 10, 32)
    if err != nil {
        fmt.Println(err)
        return
    }
    bbb := int32(bb)
    fmt.Printf("%s\n", reflect.TypeOf(bbb))
    fmt.Printf("%d\n", bbb)
}

ポイントは strconv.ParseInt しても int64 になってしまうので再度 int32 でキャストして上げる点です
何かバグっぽい挙動なような気もしますが、、、

0 件のコメント:

コメントを投稿