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 语言的字符有以下两种:

  1. uint8类型,或者叫 byte 型,代表了ASCII码 的一个字符.(字母等)
  2. rune类型,代表一个 UTF-8字符.(中文、日文、韩文等)

当需要处理中日文或者其他符合字符时,则需要用到rune类型。rune类型实际是一个int32.

Go 使用了特殊的 rune 类型来处理 Unicode,让基于 Unicode 的文本处理更为方便,也可以使用 byte 型进行默认字符串处理,性能和扩展性都有照顾。

字符串修改

字符串在go语言中是不能直接修改的

类型转换

只有整形和浮点型,字符串和切片能够强制转换