go基础语法(二)| 青训营笔记

93 阅读2分钟

这是我参与「第五届青训营」笔记创作活动的第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 类型