Go语言中有丰富的数据类型,除了基本的整型、浮点型、布尔型、字符串外,还有数组,切片,结构体,函数,map,通道(channel)等,Go语言的基本类型和其他语言大同小异。
整型
整型分为一下两个大类: 按长度分为: int8 int6 int32 int64
对应的无符号整型:uint8 uint16 uint32 uint64
uint8 就是我们熟知的 byte 型,int16对应C语言中的short型,int64 对应C语言中 long 型。
特殊整型(在跨平台应用需要注意32&64)
intuintintuint
len()intintuint
八进制&十六进制
八进制:在linux访问文件权限时 0666 、0644、 0766等这都是八进制,八进制加个0.
十六进制:win开机报错时 0x............之类的为16进制
Go 语言中无法直接定义二进制数,关于八进制和十六进制数的示例如下:
浮点型
Go语言支持两种浮点类型:float32 float64, 浮点这两种浮点型数据格式遵循
IEEE 754标准:float32 的浮点数的最大范围约为 3.4e38,可以使用常量定义:math.MaxFloat32, float64 的浮点数的最大范围约为1.8e308,可以使用一个常量定义:math.MaxFloat64.
打印浮点数时,可以使用 fmt 包含动词 %f ,代码如下:
复数
complex64 和 complex128
布尔值
Go 语言中以 bool 类型进行声明布尔型数据,布尔型数据只有 true(真)和 false(假)两个值。
注意:
1. 布尔类型变量的默认值为 false .
2. Go 语言中不允许将整型强制转换为布尔型.
3. 布尔型无法参与数值运算,也无法与其他类型转换.
fmt 用法小总结
字符串
Go 语言中的字符串以原生的数据类型出现,使用字符串就像其他原生数据类型(int\bool\float32\float64等)一样。Go语言里的字符串内部实现使用 UTF-8 编码。
Go语言中字符串的值是用双引号 ” ”中的内容
Go语言中单引号包裹的是字符
字符串转义符
Go 语言的字符串常见转义符包含回车、换行、单双引号、制表符等等
举一个自己的工作路径下src文件来说,例如:E:\GOWAREHOUSE\src
\ \ 反斜杠
如果直接在字符串中输入这个路径,go默认会把路径中的 \G \s 认为是转义符所以,我们可以在这个地方添加 \(反斜杠)解决这个问题。
加入反斜杠后 就可以在终端输出 E:\GOWAREHOUSE\src
\" 双引号
如果想把地址用双引号包裹起来:(如果加入''单引号包裹就可以运行)
打印 `` 反引号
字符串的多行打印,反引号间换行将被作为字符串中的换行,但是所有的转义字符均无效,文本将会原样输出。
字符串的常用操作
方法 | 介绍 |
---|---|
len(str) | 求长度(字符串) |
+ 或 fmt.Sprintf (fmt.Sprintf()有返回值,可以赋值) | 拼接字符串 |
strings.Split() | 分割 |
string.contains() | 判断是否包含 |
strings.HasPrefix() strings.HasSuffix() | 前缀判断 后缀判断 |
strings.Index() strings.LastIndex() | strings.Index() strings.LastIndex() |
strings.Join(a[]string ,sep string) | join 操作 |
byte 和 rune 类型
组成每个字符串的元素叫做“字符”,可以通过遍历或者单个获取字符串元素获得字符。 字符用单引号 ' ' 包裹起来.
Go 语言的字符有以下两种:
- uint8类型,或者叫 byte 型,代表了ASCII码 的一个字符.(字母等)
- rune类型,代表一个 UTF-8字符.(中文、日文、韩文等)
当需要处理中日文或者其他符合字符时,则需要用到rune类型。rune类型实际是一个int32.
Go 使用了特殊的 rune 类型来处理 Unicode,让基于 Unicode 的文本处理更为方便,也可以使用 byte 型进行默认字符串处理,性能和扩展性都有照顾。
字符串修改
字符串在go语言中是不能直接修改的