官方解释
相信很多小伙伴 看到官方解释 还是懵的一批
小道解释
在网上很多帖子说 第三个参数 是指定返回值类型的,看到这种帖子,我只想说你在放屁,函数都看不懂,回炉重造吧!!!
针对函数 返回值 问题,官方文档已经写得很清楚了,就是 多返回值(int64,error)
那么,第三个参数有何用?
其实,他是起到 string 转 int 时的一个限制作用,如果超过了第三个参数 bitSize 的限制,那么就会将报错信息输出到 error 中
案例展示
我们分别将 “127” 和 “128” 转换成 int类型
package main
import (
"fmt"
"strconv"
)
func main() {
str1 := "127"
n, err := strconv.ParseInt(str1, 10, 8) //这里的 8 指的是 转换结果最大值不超过 int8 即 127
if err != nil {
fmt.Printf("err is %v\n", err)
}
fmt.Printf("类型: %T ,值: %d", n, n)
}
package main
import (
"fmt"
"strconv"
)
func main() {
str1 := "128"
n, err := strconv.ParseInt(str1, 10, 8) //这里的 8 指的是 转换结果最大值不超过 int8 即 127
if err != nil {
fmt.Printf("err is %v\n", err)
}
fmt.Printf("类型: %T ,值: %d", n, n)
}
从以上结果中我们可以很明显的看到,第三个参数确实是起限制作用的,如果待转换值超出了我们设置的限制,就会将报错信息存于err中