5

現在、文字列から整数を解析し、それをintタイプに変換するために、次のことを行っています。

tmpValue, _ := strconv.ParseInt(str, 10, 64) //returns int64
finalValue = int(tmpValue)

ParseInt呼び出しで変換を行う方法が見つからなかったため、非常に冗長で、間違いなくきれいではありません。それを行うためのより良い方法はありますか?

4

3 に答える 3

5

strconv.Atoiこの関数は、のビットサイズに関係なく機能することを除いて、希望どおりに機能しているようですint(コードは64ビット幅であると想定しているようです)。

于 2012-12-16T13:51:32.980 に答える
3

あなたがあなたのプログラムで一度それを書かなければならないなら、私は問題がないと思います。複数の場所で必要な場合は、次のような単純な特殊化ラッパーを作成できます。

func parseInt(s string) (int, error) {
        i, err := strconv.ParseInt(str, 10, 32)  // or 64 on 64bit tip
        return int(i), err
}

標準ライブラリは、考えられるすべての数値タイプおよび/またはそれらの組み合わせに(肥大化した)APIを提供することを目的としていません。

于 2012-12-16T13:42:29.530 に答える
2

エラーをチェックすることを忘れないでください。例えば、

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
于 2012-12-16T13:53:54.253 に答える