当前位置: 技术文章>> 100道Go语言面试题之-Go语言的strconv包提供了哪些字符串与数字之间转换的函数?
文章标题:100道Go语言面试题之-Go语言的strconv包提供了哪些字符串与数字之间转换的函数?
Go语言的`strconv`包提供了丰富的字符串与数字之间转换的函数,这些函数是处理字符串与基本数据类型(如整型、浮点型、布尔型等)转换的重要工具。以下是`strconv`包中主要的字符串与数字之间转换的函数:
### 字符串转数字
1. **Atoi()**
- **功能**:将字符串转换为`int`类型的整数。
- **函数签名**:`func Atoi(s string) (i int, err error)`
- **说明**:该函数是`ParseInt(s, 10, 0)`的简写,即将字符串按照十进制解析为整数。如果转换失败,会返回错误。
2. **ParseInt()**
- **功能**:将字符串按照指定的进制和位宽转换为整数。
- **函数签名**:`func ParseInt(s string, base int, bitSize int) (i int64, err error)`
- **说明**:`base`指定进制(2到36),`bitSize`指定结果必须能无溢出赋值的整数类型(0、8、16、32、64分别代表`int`、`int8`、`int16`、`int32`、`int64`)。如果`base`为0,则会根据字符串前缀判断进制(如"0x"表示16进制,"0"表示8进制,否则为10进制)。
3. **ParseUint()**
- **功能**:与`ParseInt()`类似,但用于无符号整数。
- **函数签名**:`func ParseUint(s string, base int, bitSize int) (n uint64, err error)`
- **说明**:参数和`ParseInt()`相同,但返回的是`uint64`类型的无符号整数。
4. **ParseFloat()**
- **功能**:将字符串转换为浮点数。
- **函数签名**:`func ParseFloat(s string, bitSize int) (f float64, err error)`
- **说明**:`bitSize`指定了返回值的类型(32表示`float32`,64表示`float64`)。函数会返回最为接近`s`表示值的一个浮点数(使用IEEE754规范舍入)。
5. **ParseBool()**
- **功能**:将字符串转换为布尔值。
- **函数签名**:`func ParseBool(str string) (value bool, err error)`
- **说明**:该函数接受真值(如"1"、"t"、"T"、"true"、"True"、"TRUE")和假值(如"0"、"f"、"F"、"false"、"False"、"FALSE"),其他值会返回错误。
### 数字转字符串
1. **Itoa()**
- **功能**:将`int`类型的整数转换为字符串。
- **函数签名**:`func Itoa(i int) string`
- **说明**:该函数是`FormatInt(i, 10)`的简写,即将整数按照十进制转换为字符串。
2. **FormatInt()**
- **功能**:将整数按照指定的进制转换为字符串。
- **函数签名**:`func FormatInt(i int64, base int) string`
- **说明**:`base`指定进制(2到36),结果中大于10的数字用小写字母`a-z`表示。
3. **FormatUint()**
- **功能**:与`FormatInt()`类似,但用于无符号整数。
- **函数签名**:`func FormatUint(i uint64, base int) string`
- **说明**:参数和`FormatInt()`相同,但用于无符号整数。
4. **FormatFloat()**
- **功能**:将浮点数按照指定的格式转换为字符串。
- **函数签名**:`func FormatFloat(f float64, fmt byte, prec, bitSize int) string`
- **说明**:`fmt`指定格式(如'b'、'e'、'E'、'f'、'g'、'G'),`prec`指定精度(小数点后的位数或总位数),`bitSize`指定浮点类型(32或64)。
5. **FormatBool()**
- **功能**:将布尔值转换为字符串。
- **函数签名**:`func FormatBool(b bool) string`
- **说明**:将布尔值`true`转换为字符串"true",将`false`