現在、文字列から整数を解析し、それをint
タイプに変換するために、次のことを行っています。
tmpValue, _ := strconv.ParseInt(str, 10, 64) //returns int64
finalValue = int(tmpValue)
ParseInt
呼び出しで変換を行う方法が見つからなかったため、非常に冗長で、間違いなくきれいではありません。それを行うためのより良い方法はありますか?
現在、文字列から整数を解析し、それをint
タイプに変換するために、次のことを行っています。
tmpValue, _ := strconv.ParseInt(str, 10, 64) //returns int64
finalValue = int(tmpValue)
ParseInt
呼び出しで変換を行う方法が見つからなかったため、非常に冗長で、間違いなくきれいではありません。それを行うためのより良い方法はありますか?
strconv.Atoi
この関数は、のビットサイズに関係なく機能することを除いて、希望どおりに機能しているようですint
(コードは64ビット幅であると想定しているようです)。
あなたがあなたのプログラムで一度それを書かなければならないなら、私は問題がないと思います。複数の場所で必要な場合は、次のような単純な特殊化ラッパーを作成できます。
func parseInt(s string) (int, error) {
i, err := strconv.ParseInt(str, 10, 32) // or 64 on 64bit tip
return int(i), err
}
標準ライブラリは、考えられるすべての数値タイプおよび/またはそれらの組み合わせに(肥大化した)APIを提供することを目的としていません。
エラーをチェックすることを忘れないでください。例えば、
package main
import (
"fmt"
"strconv"
)
func main() {
s := "123"
i, err := strconv.Atoi(s)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(i)
}
出力:
123