首页 > 其他 > 详细

golang数据类型与转换

时间:2019-03-06 20:34:12      阅读:126      评论:0      收藏:0      [点我收藏+]

一、数值型int(默认值 0)

int 整数 32位系统占4个字节(-2^31~2^31-1)、64位系统占8个字节(-2^63~2^63-1)
uint 32位系统占4个字节(0~2^32-1)、64位系统占8个字节(0-2^64-1)
rune 范围(-2^31~2^31-1) 等价int32,表示一个Unicode码
byte 范围(0~255),当要存储字符时选用byte

1、int的有符号类型

 

int8 有符号 8 位整型 (-128 到 127)
int16 有符号 16 位整型 (-32768 到 32767)
int32 有符号 32 位整型 (-2147483648 到 2147483647)
int64 有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)

2、int的无符号类型

uint8 无符号 8 位整型 (0 到 255)
uint16 无符号 16 位整型 (0 到 65535)
uint32 无符号 32 位整型 (0 到 4294967295)
uint64 无符号 64 位整型 (0 到 18446744073709551615)

二、浮点型float(默认值 0)

1、float32 占用4个字节(单精度) 范围(-3.403E38~3.403E38)
2、float64 占用8个字节(双精度) 范围 (-1798E308~1.798E308) float64精度高于float32

 

三、字符型(默认值 "")

字符型存储与读取方式
存储:字符->对应码值->二进制->存储
读取:二进制->码值->字符->读取

如:

var x byte = ‘a‘
var y int = ‘够‘  //utf-8编码Unicode编码10进制结果
fmt.Println(x,y)
结果:
97 22815
赋值字符和int的运算
var x = 10 + ‘a‘
fmt.Println(x)
结果:
107

  

四、布尔值bool(占用一个字节)(默认值 false)

golang不可以用0或非0来替代false和true

1、true 真
2、false 假

五、字符串string(默认值 "")

在go中字符串一旦赋值,字符串就不可变
"" 双引号扩起来的字符串能识别转义符号
`` 反引号不识别转义符号,把字符串原生形式输出
字符串拼接方式

如:

var x  =  "hello" + "world"
多个换行相加
var y = "hello" + "world" +
"xxx" +
"yyy"

  

六、golang字符类型相互转换

1、int与float之间转换

var x int = 10
var a1 float32 = float32(x)
fmt.Printf("Type: %T Value: %v\n", x, x)
fmt.Printf("Type: %T Value: %v\n", a1, a1)

结果:
Type: int Value: 10
Type: float32 Value: 10

  

2、string与int转换

方式一、使用fmt.Sprintf 转换

var x int = 10
var str string
str = fmt.Sprintf("%d",x)
fmt.Printf("Type: %T Value: %v\n", str, str)
结果:
Type: string Value: 10

  

方式二、使用strconv

 

golang数据类型与转换

原文:https://www.cnblogs.com/zhangb8042/p/10485719.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!