Golang 中的 Strconv 包详解,看这篇就够了("深入解析 Golang Strconv 包:一站式完整指南")

原创
ithorizon 7个月前 (10-19) 阅读数 23 #后端开发

深入解析 Golang Strconv 包:一站式完整指南

一、简介

在 Golang 中,`strconv` 包是一个非常重要的标准库,它提供了字符串与基本数据类型之间彼此转换的功能。无论是从字符串中提取数字,还是将数字转换成字符串,`strconv` 都能轻松实现。本文将详细介绍 `strconv` 包的各项功能,帮助你更好地懂得和使用这个包。

二、字符串转换成基本数据类型

`strconv` 包提供了多种将字符串转换成基本数据类型的方法,以下是一些常用的转换函数:

1. Atoi

将字符串转换成 int 类型。

func Atoi(s string) (i int, err error)

示例代码:

package main

import (

"fmt"

"strconv"

)

func main() {

str := "123"

i, err := strconv.Atoi(str)

if err != nil {

fmt.Println("转换差错:", err)

} else {

fmt.Println("转换导致:", i)

}

}

2. ParseBool

将字符串转换成 bool 类型。

func ParseBool(s string) (bool, error)

示例代码:

package main

import (

"fmt"

"strconv"

)

func main() {

str := "true"

b, err := strconv.ParseBool(str)

if err != nil {

fmt.Println("转换差错:", err)

} else {

fmt.Println("转换导致:", b)

}

}

3. ParseFloat

将字符串转换成 float64 类型。

func ParseFloat(s string, bitSize int) (float64, error)

示例代码:

package main

import (

"fmt"

"strconv"

)

func main() {

str := "123.456"

f, err := strconv.ParseFloat(str, 64)

if err != nil {

fmt.Println("转换差错:", err)

} else {

fmt.Println("转换导致:", f)

}

}

4. ParseInt

将字符串转换成 int 类型,拥护多种进制。

func ParseInt(s string, base int, bitSize int) (i int64, err error)

示例代码:

package main

import (

"fmt"

"strconv"

)

func main() {

str := "123"

i, err := strconv.ParseInt(str, 10, 64)

if err != nil {

fmt.Println("转换差错:", err)

} else {

fmt.Println("转换导致:", i)

}

}

三、基本数据类型转换成字符串

`strconv` 包同样提供了多种将基本数据类型转换成字符串的方法,以下是一些常用的转换函数:

1. Itoa

将 int 类型转换成字符串。

func Itoa(i int) string

示例代码:

package main

import (

"fmt"

"strconv"

)

func main() {

i := 123

str := strconv.Itoa(i)

fmt.Println("转换导致:", str)

}

2. FormatBool

将 bool 类型转换成字符串。

func FormatBool(b bool) string

示例代码:

package main

import (

"fmt"

"strconv"

)

func main() {

b := true

str := strconv.FormatBool(b)

fmt.Println("转换导致:", str)

}

3. FormatFloat

将 float64 类型转换成字符串。

func FormatFloat(f float64, fmt byte, prec, bitSize int) string

示例代码:

package main

import (

"fmt"

"strconv"

)

func main() {

f := 123.456

str := strconv.FormatFloat(f, 'f', 6, 64)

fmt.Println("转换导致:", str)

}

4. FormatInt

将 int64 类型转换成字符串。

func FormatInt(i int64, base int) string

示例代码:

package main

import (

"fmt"

"strconv"

)

func main() {

i := int64(123)

str := strconv.FormatInt(i, 10)

fmt.Println("转换导致:", str)

}

四、进制转换

`strconv` 包还提供了进制转换的功能,以下是一些常用的进制转换函数:

1. FormatInt

将 int64 类型转换成指定进制的字符串。

func FormatInt(i int64, base int) string

示例代码:

package main

import (

"fmt"

"strconv"

)

func main() {

i := int64(255)

str := strconv.FormatInt(i, 16)

fmt.Println("转换导致:", str)

}

2. ParseInt

将字符串转换成 int64 类型,拥护多种进制。

func ParseInt(s string, base int, bitSize int) (i int64, err error)

示例代码:

package main

import (

"fmt"

"strconv"

)

func main() {

str := "ff"

i, err := strconv.ParseInt(str, 16, 64)

if err != nil {

fmt.Println("转换差错:", err)

} else {

fmt.Println("转换导致:", i)

}

}

五、差错处理

`strconv` 包在转换过程中也许会遇到差错,如非法字符串、超出范围等。所以,正确处理差错是非常重要的。在调用转换函数时,如果返回的差错不为 `nil`,则需要利用差错类型进行相应的处理。

示例代码:

package main

import (

"fmt"

"strconv"

"errors"

)

func main() {

str := "abc"

i, err := strconv.Atoi(str)

if err != nil {

if errors.Is(err, strconv.ErrSyntax) {

fmt.Println("语法差错")

} else if errors.Is(err, strconv.ErrRange) {

fmt.Println("范围差错")

} else {

fmt.Println("未知差错:", err)

}

} else {

fmt.Println("转换导致:", i)

}

}

六、总结

`strconv` 包是 Golang 中处理字符串与基本数据类型转换的重要工具。通过本文的介绍,相信你已经对 `strconv` 包有了更深入的了解。在实际开发中,灵活使用 `strconv` 包,能够让你更高效地处理数据类型转换,尽也许降低损耗代码质量。


本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: 后端开发


热门