Go标准库之strconv类型转换

307 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 23天,点击查看活动详情

前言

本文主要介绍标准库中的strconv包的使用。strconv包实现了基本数据类型与其字符串表示的转换,主要有以下常用函数: Atoi()Itoa()Parse系列Format系列等等

Atoi()

将string类型转换为int类型

函数定义:

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

代码示例:

func main() {
  i1, err := strconv.Atoi("100")
  if err != nil {
    fmt.Printf("err is:%v", err)
  } else {
    fmt.Printf("type:%T val:%v", i1, i1) 
  }
}
//输出:
//type:int val:100

Itoa()

将int类型转换为string类型

函数定义:

func Itoa(i int) string

代码示例:

func main() {
  s1 := strconv.Itoa(123)
  fmt.Printf("type:%T val:%v", s1, s1) 
}
//输出:
//type:string val:123

Parse系列

Parse系列函数用于转换字符串为给定类型的值。包括ParseBool()、ParseFloat()、ParseInt()、ParseUint()。这些函数都有两个返回值,第一个返回值是转换后的值,第二个返回值为转化失败的错误信息。

ParseBool()

将string转换为bool类型

函数定义:

func ParseBool(str string) (value bool, err error)

注意:参数str只能接受"1"、"0"、"t"、"f"、"T"、"F"、"true"、"false"、"True"、"False"、"TRUE"、"FALSE"这些字符串,除这些外,会返回一个错误

代码示例:

func main() {
  b1, err := strconv.ParseBool("1")
  fmt.Println(b1, err) 
  b2, err := strconv.ParseBool("aaa")
  fmt.Println(b2, err) 
}
//输出:
//true <nil>
//false strconv.ParseBool: parsing "aaa": invalid syntax

ParseFloat()

将string转换为float类型

函数定义:

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

代码示例:

func main() {
  b1, err := strconv.ParseBool("1")
  fmt.Println(b1, err) 
  b2, err := strconv.ParseBool("aaa")
  fmt.Println(b2, err) 
}
//输出:
//true <nil>
//false strconv.ParseBool: parsing "aaa": invalid syntax

ParseInt()

将string转换为int类型

函数定义:

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

代码示例:

func main() {
  b1, err := strconv.ParseBool("1")
  fmt.Println(b1, err) 
  b2, err := strconv.ParseBool("aaa")
  fmt.Println(b2, err) 
}
//输出:
//true <nil>
//false strconv.ParseBool: parsing "aaa": invalid syntax

ParseUint()

将string转换为uint类型

函数定义:

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

代码示例:

func main() {
  b1, err := strconv.ParseBool("1")
  fmt.Println(b1, err) 
  b2, err := strconv.ParseBool("aaa")
  fmt.Println(b2, err) 
}
//输出:
//true <nil>
//false strconv.ParseBool: parsing "aaa": invalid syntax

Format系列

Format系列函数实现了将给定类型数据格式化为string类型数据的功能。包括FomatBool()、FomatFloat()、FomatInt()、FomatUint()。这些函数都只有一个返回值,转换后的字符串。

FormatBool()

将bool转换为string类型

函数定义:

func FormatBool(b bool) string

代码示例:

func main() {
  b1, err := strconv.ParseBool("1")
  fmt.Println(b1, err) 
  b2, err := strconv.ParseBool("aaa")
  fmt.Println(b2, err) 
}
//输出:
//true <nil>
//false strconv.ParseBool: parsing "aaa": invalid syntax

FormatFloat()

将float转换为string类型

函数定义:

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

代码示例:

func main() {
  b1, err := strconv.ParseBool("1")
  fmt.Println(b1, err) 
  b2, err := strconv.ParseBool("aaa")
  fmt.Println(b2, err) 
}
//输出:
//true <nil>
//false strconv.ParseBool: parsing "aaa": invalid syntax

FormatInt()

将int转换为string类型

函数定义:

func FormatInt(i int64, base int) string

代码示例:

func main() {
  b1, err := strconv.ParseBool("1")
  fmt.Println(b1, err) 
  b2, err := strconv.ParseBool("aaa")
  fmt.Println(b2, err) 
}
//输出:
//true <nil>
//false strconv.ParseBool: parsing "aaa": invalid syntax

FormatUint()

将unit转换为string类型

函数定义:

func FormatUint(i uint64, base int) string

代码示例:

func main() {
  b1, err := strconv.ParseBool("1")
  fmt.Println(b1, err) 
  b2, err := strconv.ParseBool("aaa")
  fmt.Println(b2, err) 
}
//输出:
//true <nil>
//false strconv.ParseBool: parsing "aaa": invalid syntax

如果本文对你有帮助,欢迎点赞收藏加关注,如果本文有错误的地方,欢迎指出!