这是我参与「第五届青训营」笔记创作活动的第3天
语言变量
在go中,变量声明的格式为
var a type=b
声明变量一般使用var关键词,a为变量名(命名规则见go基础语法(一)| 青训营笔记 - 掘金 (juejin.cn)),type为变量类型(见后文的数据类型),=后面的b则是给变量的初始赋值
当然,也可以一次性声明多个变量
var a,b type
声明变量时,指定了变量的类型,但没有进行初始化,则变量默认为零值,其中数值类型为0,bool类型为false,字符串为""(空字符串),派生类型为nil
也可以根据值自行判断变量类型
var a="aaaa"
var b=ture
var c=1
:=声明
如果变量已经var声明过了,再次使用:=声明,会产生编译错误
var intVal int
intVal :=1 // 这时候会产生编译错误,因为 intVal 已经声明,不需要重新声明
intVal := 1 相等于:
var intVal int
intVal =1
多个变量声明
//类型相同多个变量, 非全局变量
var vname1, vname2, vname3 type
vname1, vname2, vname3 = v1, v2, v3
var vname1, vname2, vname3 = v1, v2, v3 // 和 python 很像,不需要显示声明类型,自动推断
vname1, vname2, vname3 := v1, v2, v3 // 出现在 := 左侧的变量不应该是已经被声明过的,否则会导致编译错误
// 这种因式分解关键字的写法一般用于声明全局变量
var (
vname1 v_type1
vname2 v_type2
)
数据类型
下面简单介绍下各种数据类型
1、布尔型(bool)
布尔型的值只能是常量true和false
2、数字类型
数字类型分为整型和浮点型,整型常用的是int,浮点型是float32和float63,并且go中还支持复数,其中位的运算采取补码
整型:uint8,uint16,uint32,uint64,int8,int16,int32,int64
浮点型:float32,float64,complex64,complex128
3、字符串类型(string)
Go 的字符串是由单个字节连接起来的。Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。
4、派生类型
指针类型(Pointer)
数组类型
结构化类型(struct)
Channel 类型
函数类型
切片类型
接口类型(interface)
Map 类型