Das strconv-Paket, ein Typkonvertierungstoolpaket in der Go-Sprache

Freigeben: 2023-07-21 16:06:19
nach vorne
894 Leute haben es durchsucht
Dieses Mal lernen wir ein Typkonvertierung Toolkitstrconv in der Go-Sprache.

Ich weiß nicht, ob du darüber nachgedacht hast.

In Go, Wie man die Zeichenfolge 100 in die Zahl 100 umwandelt.

So?

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

Nein, nein, nein, schauen Sie sich die Ausführungsergebnisse an.

Das strconv-Paket, ein Typkonvertierungstoolpaket in der Go-Sprache

Es wurde ein Fehler gemeldet, der darauf hinweist, dass die Konvertierung nicht so einfach und grob ist! ! !


String zu int (mit 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)
}
Nach dem Login kopieren

Ausführung. Ergebnis

Das strconv-Paket, ein Typkonvertierungstoolpaket in der Go-Sprache

Sie können feststellen, dass die Konvertierung erfolgreich ist wird zum Typ 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)
}
Nach dem Login kopieren

执行结果

Das strconv-Paket, ein Typkonvertierungstoolpaket in der Go-Sprache

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


strconv.Parse转换

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

strconvParse的多样性会多一点。

strconv.ParseBool()

这个方法,是将字符串的Bool类型,转成真正的BoolParse Stil ="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;“>

strconv🎜🎜的🎜🎜Parse🎜🎜的多样性会多一点。🎜🎜

🎜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)
}
Nach dem Login kopieren

执行结果

Das strconv-Paket, ein Typkonvertierungstoolpaket in der Go-Sprache

成功将字符串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)
}
Nach dem Login kopieren

执行结果

Das strconv-Paket, ein Typkonvertierungstoolpaket in der Go-Sprache

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

Vielleicht geht es Ihnen wie mir und Sie haben die Bedeutung des zweiten Parameters 10 und des dritten Parameters 64 zunächst nicht verstanden.

Aber vielleicht verstehen Sie das Bild unten.

Das strconv-Paket, ein Typkonvertierungstoolpaket in der Go-Sprache

Unter normalen Umständen schreiben Sie einfach den obigen Code. Er wird ursprünglich übertragen int, warum denken Sie so viel? ! !

strconv.parseUint()

Dasselbe wie oben, aber dies kann nur positive Zahlen konvertieren, nicht negative Zahlen.

strconv.ParseFloat()

Wie Sie am Namen erkennen können, dient es dazu, eine String-Gleitkommazahl in eine echte Gleitkommazahl umzuwandeln.

示例代码

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)
}
Nach dem Login kopieren

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

执行结果

Das strconv-Paket, ein Typkonvertierungstoolpaket in der Go-Sprache


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)
}
Nach dem Login kopieren

执行结果

Das strconv-Paket, ein Typkonvertierungstoolpaket in der Go-Sprache


总结

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

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

Relativ gesehenParseParse系列可能会用的更多一点,Format Serien können häufiger verwendet werden, Format

Es gibt nicht viele verwandte Verwendungszwecke, verstehen Sie es einfach! 🎜🎜🎜

Das obige ist der detaillierte Inhalt vonDas strconv-Paket, ein Typkonvertierungstoolpaket in der Go-Sprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:Go语言进阶学习
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage