GO基本数据类型

GO基本数据类型

GO基本数据类型

整型

//按长度分
int8 int16 int32 int64
//按有无符号分
uint8 uint16 uint32 uint64
//提供了平台自动匹配长度的int类型和uint类型
int uint
//注意转换 只能位数少的往位数高的转,不然会出现数据丢失,报错

浮点型

//主要有两种
float32 float64
//可以相互转换,但是高精度向低精度转出现精度损失

布尔型

bool
//注意只有 true和false 不可与整型互相转换

字符串型

string 
//字符串基于UTF-8实现
f :="Golanga编程"
//需要区分byte和rune byte一种是uint8类型,表明了ASCII码的一个字符。另外一种是rune类型,表明一个UTF-8字符,rune类型实际是一个int32,表示 Unicode 码
//len(f)=12因为一个中文占三个字节
//而utf8.RuneCountInString(f)是计算字符串的Unicode数量,为8个

字符串遍历
1.遍历每个 ASCII 字符
直接使用for

2.按Unicode 字符遍历字符串
使用 range

str := "快乐 everyday"

for _, s := range str{
  fmt.Printf("unicode: %c %d\n", s,s)
}

for i:=0;i<len(str) ;i++  {
  fmt.Printf("ascii: %c %d\n", str[i], str[i])
}

Unicode和ASCII的区别

Unicode是字符集。ASCⅡ也是一种字符集。

字符集为每一个字符分配一个惟一的ID,咱们使用到的全部字符在 Unicode字符集中都有惟一的一个ID对应,例如上面例子中的a在 Unicode与ASCII中的编码都是97。

“你“在 Unicode中的编码为20320,可是在不一样国家的字符集中,“你”的ID会不一样。而不管任何状况下, Unicode中的字符的ID都是不会变化的。

UTF-8是编码规则,将 Unicode中字符的ID以某种方式进行编码。UTF-8的是一种变长编码规则,从1到4个字节不等。

UTF-8编码规则

UTF-8 编码,它使用 1 - 4 个字节表示 Unicode 码,Unicode 码到 UTF-8 编码的转换如下:

0xxxxxxx                                   runes 0127 (ASCII)
110xxxxx 10xxxxxx                          1282047 ues <128 un (val used)
1110xxxx 10xxxxxx 10xxxxxx                 204865535 ues <2048 un (val used)
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx        655360x10ff f f (other values unus ed)
————————————————

   转载规则


《GO基本数据类型》 朱林刚 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
Go指针 Go指针
指针指针unsafe.Pointerunsafe.Pointer的定义 从unsate.Pointer的定义如下,从定义中我们可以看出,Pointer的本质是一个int的指针: type ArbitraryType int type Poi
2021-11-18
下一篇 
Go 内存四区 Go 内存四区
内存四区内存四区概念:A.数据类型本质:​ 固定内存大小的别名 B. 数据类型的作用:​ 编译器预算对象(变量)分配的内存空间大小。 C.内存4区 流程说明 1、操作系统把物理硬盘代码load到内存 2、操作系统把c代码分成四
2021-11-18
  目录