ホームページ  >  記事  >  バックエンド開発  >  strconv パッケージ、Go 言語の型変換ツール パッケージ

strconv パッケージ、Go 言語の型変換ツール パッケージ

Go语言进阶学习
Go语言进阶学习転載
2023-07-21 16:06:19891ブラウズ
今回は Go 言語の Convert## の種類を学びましょう#ツールキットstrconv
あなたがそれについて考えたかどうかはわかりません。

Go で、

文字列 100 を数値 100 に変換する方法。 ############それで?

func main() {
    var score = "100"
    i := int(score)
    fmt.Printf(i)
}

いいえ、いいえ、いいえ、実行結果を見てください。

strconv パッケージ、Go 言語の型変換ツール パッケージ

エラーが報告されており、これはそれほど単純で粗雑な変換ではないことが示されています。 ! !


文字列を int に変換 (Atoi を使用)

コード

func main() {
    //string 100
    var scoreStr = "100"
    fmt.Printf("%v,%T\n", scoreStr, scoreStr) //100,string
    score, err := strconv.Atoi(scoreStr)
    //转换失败
    if err != nil {
        panic(err)
}
    fmt.Printf("%v,%T\n", score, score)
}

実行結果

strconv パッケージ、Go 言語の型変換ツール パッケージ

次のことがわかります。変換は成功しました。 その後、int 型になりました。


int转string(用Itoa)

代码

func main() {
    //int 100
    var scoreInt = 100
    fmt.Printf("%v,%T\n", scoreInt, scoreInt) //100,string
    score  := strconv.Itoa(scoreInt)
    fmt.Printf("%v,%T\n", score, score)
}

执行结果

strconv パッケージ、Go 言語の型変換ツール パッケージ

注:在Go中,只能通过上述两种方式进行string -> intint -> string


strconv.Parse は

##strconvParse# # に変換します#関連メソッドでは、文字列型を他の型に変換することについても説明していますが、比較します。

strconv は、Parse a においてより多様性を持ちます。少し。

strconv.ParseBool()

このメソッドは、次の

Bool を変換します。文字列 型。実際の Bool 型に変換されます。

示例代码

func main() {
    var tString = "true"//可以是 1,0,t,f,T,F,true,false,True,False,TRUE,FALSE
    fmt.Printf("%T,%v\n", tString, tString)
    tBool, err := strconv.ParseBool(tString)
    if err != nil {
        panic(err)
}
    fmt.Printf("%T,%v\n", tBool, tBool)
}

执行结果

strconv パッケージ、Go 言語の型変換ツール パッケージ

成功将字符串true转成Bool true

strconv.ParseInt()

这个,就很简单了,跟strconv.Atoi()基本一样。

示例代码

func main() {
   var tString = "666"
   fmt.Printf("%T,%v\n", tString, tString)
   tInt, err := strconv.ParseInt(tString,10,64)
   if err != nil {
      panic(err)
   }
   fmt.Printf("%T,%v\n", tInt, tInt)
}

执行结果

strconv パッケージ、Go 言語の型変換ツール パッケージ

第二个参数10和第三个参数64的意思

おそらくあなたも私と同じで、 2 番目のパラメータ 10 と最初の を理解していなかったのではないでしょうか。 3 つのパラメータ 64 の意味。

しかし、下の図を見れば理解できるかもしれません。

strconv パッケージ、Go 言語の型変換ツール パッケージ

理解してください。通常は上記のコードを書くだけです。元々は int に変換されます。 、なぜそこまで考えるのですか! ! !

strconv.parseUint()

上記と同じですが、これは のみを変換できます。正の数 、負の数 は変換できません。 strconv.ParseFloat()

これは、名前からわかるように、

文字列を変換します。浮動小数点数 #転送 #実数浮動小数点数 #。

示例代码

func main() {
    var tString = "3.1415"
    fmt.Printf("%T,%v\n", tString, tString)
    tFloat, err := strconv.ParseFloat(tString,64)
    if err != nil {
        panic(err)
}
    fmt.Printf("%T,%v\n", tFloat, tFloat)
}

第二个参数64,同上,也是因为返回的就是float64,所以容量也得是64

执行结果

strconv パッケージ、Go 言語の型変換ツール パッケージ


strconv.Format转换

这个和strconv.Parse是相反的,是将int/float/bool等 -> string的一个过程。

但是我总感觉有点脱裤子放屁的感觉,既然官方提供了,就随便看看叭!!!

这里我就使用简述的代码来写的。

func main() {
    a := strconv.FormatBool(true)
    //E表示十进制,
    b := strconv.FormatFloat(3.1415, 'E', -1, 64)
    c := strconv.FormatInt(666, 10)
    fmt.Printf("%v,%T\n",a,a)
    fmt.Printf("%v,%T\n",b,b)
    fmt.Printf("%v,%T\n",c,c)
}

执行结果

strconv パッケージ、Go 言語の型変換ツール パッケージ


总结

其实这次我们的重点主要是前俩,string - > int(用Atoi)int -> string(用Itoa)

其他的主要分为strconv.Parse系列和strconv.Format系列。

比較的、Parse シリーズがよく使われる可能性があります。 Format 関連する用途はそれほど多くありませんが、理解しておいてください。

以上がstrconv パッケージ、Go 言語の型変換ツール パッケージの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はGo语言进阶学习で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。