Maison > développement back-end > Golang > Le package strconv, un package d'outils de conversion de type en langage Go

Le package strconv, un package d'outils de conversion de type en langage Go

Libérer: 2023-07-21 16:06:19
avant
955 Les gens l'ont consulté
Cette fois, nous allons apprendre une conversion de type boîte à outilsstrconv en langage Go.

Je ne sais pas si vous y avez pensé.

In Go, Comment convertir la chaîne 100 en nombre 100.

Vous aimez ça ?

func main() {
    var score = "100"
    i := int(score)
    fmt.Printf(i)
}
Copier après la connexion

Non, non, non, regardez les résultats de l'exécution.

Le package strconv, un package d'outils de conversion de type en langage Go

Une erreur a été signalée, indiquant que la conversion n'est pas si simple et grossière ! ! !


chaîne en int (en utilisant Atoi)

code

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)
}
Copier après la connexion

résultat d'exécution

Le package strconv, un package d'outils de conversion de type en langage Go

Vous constaterez qu'une fois la conversion réussie, devient int type.


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)
}
Copier après la connexion

执行结果

Le package strconv, un package d'outils de conversion de type en langage Go

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


strconv.Parse转换

strconvstrconvParse相关方法,也是讲string类型转换为其他类型,但是相比之下。

strconvParse的多样性会多一点。

strconv.ParseBool()

这个方法,是将字符串的Bool类型,转成真正的BoolParse

🎜相关方法,也是讲string类型转换为其他类型,但是相比之下。🎜🎜

🎜strconv🎜🎜的🎜🎜🎜strconv.ParseBool()🎜</h3><p cid="n27" mdtype="paragraph" style="box-sizing: border-box;line -hauteur : hériter ; orphelins : 4 ; marge supérieure : 0,8 em ; marge inférieure : 0,8 em ; espace blanc : pré-enveloppement ; famille de polices : « Open Sans », « Clear Sans », « Helvetica Neue », Helvetica, Arial, sans-serif ; taille de la police : 16 px ; var(--monospace);alignement vertical : initial;largeur de bordure : 1px;style de bordure : solide;couleur de bordure : rgb(231, 234, 237);couleur d'arrière-plan : rgb(243, 244, 244) ;border-radius : 3px;padding-right : 2px;padding-left : 2px;font-size : 0.9em;">Bool🎜🎜类型,转成真正的🎜🎜<span md-inline="strong" style="box-sizing: border-box;"><strong style="box-sizing: border-box;">示例代码</strong></span></p><section class="code-snippet__fix code-snippet__js"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">func main() { var tString = &quot;true&quot;//可以是 1,0,t,f,T,F,true,false,True,False,TRUE,FALSE fmt.Printf(&quot;%T,%v\n&quot;, tString, tString) tBool, err := strconv.ParseBool(tString) if err != nil { panic(err) } fmt.Printf(&quot;%T,%v\n&quot;, tBool, tBool) }</pre><div class="contentsignin">Copier après la connexion</div></div></section><p cid="n30" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;font-size: 16px;text-align: start;"><span md-inline="strong" style="box-sizing: border-box;"><strong style="box-sizing: border-box;">执行结果</strong></span><br/></p><p style="text-align: center;"><img src="https://img.php.cn/upload/article/001/272/559/26b79284f62ccc2e8f35103aa0d20b1f-3.png"/ alt="Le package strconv, un package d'outils de conversion de type en langage Go" ></p><p cid="n32" mdtype="paragraph" style="max-width:90%"><span md-inline="plain" style="box-sizing: border-box;">成功将</span><span md-inline="strong" style="box-sizing: border-box;"><strong style="box-sizing: border-box;">字符串true</strong></span><span md-inline="plain" style="box-sizing: border-box;">转成</span><span md-inline="strong" style="box-sizing: border-box;"><strong style="box-sizing: border-box;">Bool true</strong></span><span md-inline="plain" style="box-sizing: border-box;">。</span><br/></p><h3 cid="n33" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;font-size: 1.5em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.43;cursor: text;white-space: pre-wrap;font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;text-align: start;"><span md-inline="plain" style="box-sizing: border-box;">strconv.ParseInt()</span></h3><p cid="n34" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;font-size: 16px;text-align: start;"><span md-inline="plain" style="box-sizing: border-box;">这个,就很简单了,跟</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;font-family: var(--monospace);vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;">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)
}
Copier après la connexion

执行结果

Le package strconv, un package d'outils de conversion de type en langage Go

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

Peut-être que vous êtes comme moi et que vous n'avez pas compris la signification du deuxième paramètre 10 et du troisième paramètre 64 au début.

Mais vous comprendrez peut-être l'image ci-dessous.

Le package strconv, un package d'outils de conversion de type en langage Go

Comprenez-le. Dans des circonstances normales, écrivez simplement le code ci-dessus Il est initialement transféré int, pourquoi pensez-vous autant ! ! !

strconv.parseUint()

Comme ci-dessus, mais cela ne peut convertir que des nombres positifs, pas des nombres négatifs.

strconv.ParseFloat()

Comme vous pouvez le voir d'après le nom, il s'agit de convertir un nombre à virgule flottante de chaîne en un vrai nombre à virgule flottante.

示例代码

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)
}
Copier après la connexion

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

执行结果

Le package strconv, un package d'outils de conversion de type en langage Go


strconv.Format转换

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

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

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

func main() {
    a := strconv.FormatBool(true)
    //E表示十进制,
    b := strconv.FormatFloat(3.1415, &#39;E&#39;, -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)
}
Copier après la connexion

执行结果

Le package strconv, un package d'outils de conversion de type en langage Go


总结

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

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

Relativement parlantParse系列可能会用的更多一点,Format la série peut être utilisée davantage, Format

Il n'y a pas beaucoup d'utilisations associées, comprenez-le simplement ! 🎜🎜🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:Go语言进阶学习
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal