当前位置: 技术文章>> 100道Go语言面试题之-请解释Go语言的strconv包中的字符串与数字相互转换的函数。

文章标题:100道Go语言面试题之-请解释Go语言的strconv包中的字符串与数字相互转换的函数。
  • 文章分类: 后端
  • 8706 阅读

在Go语言中,strconv包提供了字符串与其他基本数据类型之间的转换功能,特别是字符串与数字(整数、浮点数等)之间的转换。以下是strconv包中一些常用的字符串与数字相互转换的函数及其简要说明:

字符串转整数

  • strconv.Atoi(s string) (int, error):尝试将字符串s转换为十进制整数。如果转换成功,则返回转换后的整数和nil错误;如果转换失败,则返回0和一个非nil的错误。

  • strconv.ParseInt(s string, base int, bitSize int) (i int64, err error):将字符串s按照指定的进制base(范围2到36)解析为整数,并根据bitSize(0、8、16、32、64)返回合适大小的整数(int64类型)。如果bitSize是0,则根据转换的数值大小自动选择合适的类型。

  • strconv.ParseUint(s string, base int, bitSize int) (n uint64, err error):功能与ParseInt类似,但返回的是无符号整数(uint64类型)。

整数转字符串

  • strconv.Itoa(i int) string:将整数i转换为字符串表示。这个函数只支持int类型的转换,对于其他整数类型(如int64),需要使用FormatInt函数。

  • strconv.FormatInt(i int64, base int) string:将整数i以指定的进制base(范围2到36)转换为字符串。这个函数适用于所有整数类型,通过传递int64类型的参数可以覆盖intint32int16int8等类型的转换。

  • strconv.FormatUint(i uint64, base int) string:与FormatInt类似,但用于无符号整数(uint64)的转换。

字符串转浮点数

  • strconv.ParseFloat(s string, bitSize int) (f float64, err error):将字符串s转换为浮点数。bitSize指定了期望的精度(32或64),但它实际上只是指定了返回的浮点数类型(float32float64)。函数总是返回float64类型的值,如果bitSize是32,则调用者需要将其转换为float32

浮点数转字符串

  • strconv.FormatFloat(f float64, fmt byte, prec, bitSize int) string:将浮点数f转换为字符串。fmt参数指定了格式化类型(如'f'表示固定小数点数表示,'e'表示科学计数法),prec是精度(小数点后的位数),bitSize指定了原始浮点数的类型(32或64),虽然它主要用于确定f是否应该被四舍五入到其原始类型的精度。

这些函数在处理文本数据和数字数据之间的转换时非常有用,特别是在需要解析用户输入或生成文本输出时。

推荐文章