美文网首页
go常见数据类型

go常见数据类型

作者: bug去无踪 | 来源:发表于2019-02-26 16:58 被阅读0次

变量定义

1.单个变量:var variableName type
定义并初始化:var variableName type=value
例如:var a string="hello world"

2.多个变量:var vname1, vname2, vname3 type
定义并初始化:var vname1, vname2, vname3=v1,v2,v3
例如:var a,b,c =1,"hello",3.14

3.方法内部定义变量方式
单个: vname:=values
多个变量:vname1, vname2, vname3 := v1, v2, v3

4.常量的定义 关键字const
const constantName = value
例如:const PI=3.14125926 const a="hello"

go内置基础数据类型

1.布尔类型 bool 默认值为:false
例如:var isActive bool

2.数值类型
2.1 整数数值类型
无符号:byte, uint8, uint16, uint32, uint64
有符号:rune, int8, int16, int32, int64
其中rune是int32的别称,byte是uint8的别称
默认值均是 0
注意:这些类型的变量之间不允许互相赋值或操作
2.1 浮点数值类型
类型有float32和float64两种 默认float64 默认值均是 0

3.字符串类型 string
var s string = "hello"
Go中字符串是不可变的,不能进行如下操作 s[0]='c'
但可以进行切片操作:a:=s[2:]
字符串可以用+拼接:str:=s+"world"
原样输出字符串: 使用`` 括起的字符串为Raw字符串,即字符串在代码中的形式就是打印时的形式,它没有字符转义,换行也将原样输出

4.枚举类型 iota
iota 这个关键字用来声明enum的时候采用,它默认开始值是0,每调用一次加1
例如:
const(
x=iota //x==0
y=iota //y==1
z=iota //z==2
w // 常量声明省略值时,默认和之前一个值的字面相同。这里隐式地说w = iota,因此w == 3。其实上面y和z可同样不用
)
const v = iota // 每遇到一个const关键字,iota就会重置,此时v == 0

5.数组(array)、切片(slice)、集合(map)
5.1 数组
5.1.1 一维数组
var arr [n]type 在[n]type中,n表示数组的长度,type表示存储元素的类型,其中长度也是数组的一部分,因此[3]int和[4]int是不同的类型
数组声明 var arr [10]int
a:=[3]int{1,2,3}// 声明了一个长度为3的int数组
a:=[10]int{1,2,3} //前三个元素初始化为1、2、3,其它默认为0
c := [...]int{4, 5, 6} // 省略长度
5.1.2二维数组
easyArray := [2][4]int{{1, 2, 3, 4}, {5, 6, 7, 8}}

5.2切片(动态数组)
slice并不是真正意义上的动态数组,而是一个引用类型。slice总是指向一个底层array,slice的声明也可以像array一样,只是不需要长度。
声明:var fslice []int
声明并初始化:slice := []byte {'a', 'b', 'c', 'd'}

slice := make([]type, length, cap)// length指切片的长度 cap值切片最大容量 cap>=length
slice1 := make([]int32, 10, 15)
fmt.Println(len(slice1), cap(slice1))// length=10 cap=15
slice2 := make([]int32, 10)
fmt.Println(len(slice2), cap(slice2)) // length=10 cap=10

slice:=[]int{1,2,3,4,5,6}
取切片下标在a到b范围内元素:slice[a:b] (a,b>=0&&a,b<=length(slice)-1)取出的元素包括下标a不包括下标b
a:=slice[1:3] 下标1-3 取出的元素是slice[1]=2,slice[2]=3
b:=slice[:3] 取出下标是0-3的元素slice[0]=1,slice[1]=2,slice[2]=3
c:=slice[4:] 取出下标是4到(length(slice)-1的元素slice[4],slice[5]
d:=slice[:] 取出全部元素
append 向slice里面追加一个或者多个元素,然后返回一个和slice一样类型的slice copy 函数copy从源slice的src中复制元素到目标dst,并且返回复制的元素的个数

5.3集合map 键值对的存储形式
声明方式一:var numbers map[string] int
声明方式二:numbers := make(map[string]int)
numbers["one"] = 1 //赋值
numbers["ten"] = 10 //赋值
numbers["three"] = 3
判断集合中是否存在某个key
value, ok := numbers["one"]// key存在ok取true,不存在为false
删除集合中的某个key元素: delete(numbers, "one")

相关文章

  • Go语言的常量与变量

    数据类型 go语言支持常见的数据类型。 数字:go语言支持整型int和浮点型float32/float64。位运算...

  • 第三章:Go语言基础数据类型

    1. Go语言数据类型 1.1 数据类型分类 Go语言数据类型大致可以分为两类基础类型,其中就包括了我们最常见的一...

  • 04-Go语言常量和变量

    Go数据类型 C语言的数据类型image GO语言数据类型image GO数据类型占用的内存空间image 注意点...

  • 02-Go语言常量和变量

    Go语言的数据类型 C语言的数据类型 Go语言的数据类型 Go语言各数据类型占用内存空间 Go语言中也可以使用si...

  • go常见数据类型

    变量定义 1.单个变量:var variableName type定义并初始化:var variableName ...

  • 三、数据类型和操作

    一、数据类型 Go支持的数据类型特别丰富,你可以在Go SDK/src/builtin/builtin.go 这个...

  • go 语言第一节课(2)

    go 语言数据类型

  • Go语言第3天 - 常用数据类型

    以下内容部分参考自Go语言基础数据类型Go语言中的数组切片:特立独行的可变数组Go语言数据类型-数组Go标准容器之...

  • 初识Go语言-1

    Go语言学习路径 初识Go语言 Go语言环境搭建与IDE安装 Go语言基础语法 Go语言数据类型 Go语言变量和常...

  • Go之旅-变量

    Go语言变量有固定的数据类型,决定了变量内存的长度和存储格式。Go变量只能修改变量值,不能改变变量的数据类型。Go...

网友评论

      本文标题:go常见数据类型

      本文链接:https://www.haomeiwen.com/subject/urwayqtx.html