初级会员
  • 第 38180 位会员
  • yuwei
  • 2019-06-06 00:30:56
  • Offline
  • 19 90

最近发布的文章

    暂无

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • @jan-bar 看了你的回答我才弄懂,谢谢谢谢。
  • #5 @jan-bar 谢谢你的解答。目前我看源码还是有些困难。 在我的代码中 var str = "29" var num int32 num, _ = strconv.ParseInt(str, 10, 32) num是int32,参数中也是32,可是依然报错 ![image.png](https://static.studygolang.com/190608/618ecb716e90154333204cd2a116bcb6.png) 如果num定义为int64,那么参数中填入0或64都是没有问题的。 这样看来,并不像文档中所说0对应int,8对应int8,32对应int32。而是默认int64。 那么在fmt.Println(strconv.ParseInt(str, 10, 0))这个语句中没有出现问题,只能是Println函数接收的值也是int64,。 可是go是根据系统是32位还是64位来确定int型是几位的。那这样的情况下,把变量声明为int,编译不过的问题不就会特别多?go语言的设计者不应该想不到这样的问题呀,所以我认为是我理解错了,只是找不到原因
  • #3 @jan-bar 那就是说只有在声明n的时候定义n是int64时,才能在参数中直接填0,而且还要求系统是64位的才行。 可是strconv.ParseInt的说明中写0值对应int,n定义为int时,就会报错。这样的话,我就不太理解为什么会这样了
  • 1楼 @eric160 package main import ( "fmt" "strconv" ) func main() { var str = "2942394" //var num int //num, _ = strconv.ParseInt(str, 10, 0) //fmt.Println(num) fmt.Println(strconv.ParseInt(str, 10, 0)) } 这是代码。 已经是忽略了error的值了的,可是还是会报错 ./hello.go:13:9: cannot assign int64 to num (type int) in multiple assignment ![深度截图_选择区域_20190606173841.png](https://static.studygolang.com/190606/cc38f43c32df2e2d19e8f34efee64de5.png)