大佬教程收集整理的这篇文章主要介绍了Golang中的int类型和uint类型到底有多大?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在开始之前,我们先来看看uint 与 int 的区别
上面是图,下面是源码:
引言
把64位的数字赋值给uint,我理解uint是32位的,为啥可以编译通过?但是我接着又在 playground 上试了一把,结果是编译不过了:
constant 18446744073709551615 overflows uint
int 和 uint 到底占多大空间?
其实我一直理解是32位的。因为别的语言是这样,惯性思维了。
直接看一下官方文档:
int is a signed Integer type that is at least 32 bits in size. it is a disTinct type,however,and not an alias for,say,int32.
uint和Int情况差不多。翻译一下,就是说这个整形最少占32位,int和Int32是两码事。
再看一下 davecheney 大神的回复(大神半夜回复 GitHub 真是敬业啊):
uint is a variable sized type,on your 64 bit computer uint is 64 bits wide.
我的理解uint类型长度取决于 cpu,如果是32位cpu就是4个字节,如果是64位就是8个字节。我的电脑是64位的,而 playground 是32位的,问题就出在这里。
@H_714_2@more
这里就会出现一个情况,int和uint是根据 cpu 变化的,如何知道当前系统的情况?
写了这么多年 Golang,int天天用,一直被我当32位处理,说来惭愧。。。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对编程小技巧的支持。
以上是大佬教程为你收集整理的Golang中的int类型和uint类型到底有多大?全部内容,希望文章能够帮你解决Golang中的int类型和uint类型到底有多大?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。