要学习golang,当然要先配置好相关环境啦。
1. Go 安装包下载
https://studygolang.com/dl
在Windows下,直接下载msi文件,在安装界面选择安装路径,然后一直下一步就行了。
在cmd下输入
go version
即可看到go安装成功
2. Goland安装
https://www.jetbrains.com/go/download/download-thanks.html?platform=windows
在官网下载安装包
在安装界面选择安装路径,然后一直下一步就行了。
3. 变量
Go语言是静态强类型语言,所以变量是有明确类型的。变量实质上就是在内存中的一小块空间,用来存储特定类型的可变数据。如果没有变量我们的程序中只能将数值写死都是静态的数据,我们无法更改,变量可以让我们进行动态的操作。在数学概念中变量表示没有固定的值,可以随时改变的数。 例如:除数,减数与被减数等。
3.1 如何声明变量
声明一个变量的语法为:var name type,例如
var age int //声明 未赋值默认为0
语句 var age int 声明了一个类型为 int,名称为 age 的变量。在这里我们没有给它赋任何值。如果一个变量没有被赋予任何值,Go 会自动将这个变量初始化为其类型的 0值
3.2 如何赋值
在声明变量时可以指定其初始值。
声明一个带初值的变量的语法为:var name type = initialvalue,例如:
var age int //声明 未赋值默认为0
age = 18 //赋值//直接根据你所初始化的值,来推导出定义的数据类型
var name = "王钢蛋"
name :="王铁蛋"//简短定义方式 声明并赋值
age := 10
var age = 10
Go语言支持根据数据推导数据类型的方法。所以在定义的时候可以不用写数据类型,直接根据你所初始化的值,来推导出定义的数据类型。如果声明一个变量时提供了初始值,Go可以根据该初始值来自动推导变量的类型。因此如果声明变量时提供了初始值,就可以不必指定其类型。
也就是说,如果声明变量的形式为:var name = initialvalue,Go将根据 initialvalue 自动推导变量 name 的类型。
3.3 多变量定义
多个变量可以在一条语句中声明。
多变量声明的语法为:var name1, name2 type = initialvalue1, initialvalue2,例如:
//var方式声明多变量var a,b,c inta=1 b=2 c=3
//也可以写在一行
var a1,a2,a3 int =10,20,30
//也可以省略类型 根据数据进行类型推导var a1,a2,a3 =10,20,"ago"
//如果是多种类型 也可以使用集合
var(a1 =""a2 =10
)
简短定义方式定义多个变量。 需要注意的是,一个变量在程序中只能够定义一次,重复定义就会报错。
3.4 速记声明
Go 提供了另一种简洁的声明变量的方式。这种方式称为速记声明(shorthand declaratiion)。速记声明使用 := 操作符来声明变量。
速记声明的语法为:name := initialvalue,例如:
age := 10age := 10
3.5 匿名变量
匿名变量也就是没有名字的变量, 开发过程中可能会遇到有些变量不是必须的。匿名变量使用下划线" _ " 表示。 “_” 也称为空白标识符,任何类型都可以使用它进行赋值,而且任何类型赋值后都将直接被抛弃,所以在使用匿名变量时,表示后续代码不需要再用此变量。
3.6 变量的作用域
变量在程序中有一定的作用范围,如果一个变量声明在函数体的外部,这样的变量被认为是全局变量,全局变量在整个包内,也就是当前的package内都可以被调用得到。如果变量定义在函数体内部,则被称之为局部变量。
注意:
- 相同的作用域内, 无论是全局变量还是局部变量, 都不能出现同名的变量
- 变量离开作用域就不能使用
- 局部变量如果没有使用, 编译会报错, 全局变量如果没有使用, 编译不会报错
- :=只能用于局部变量, 不能用于全局变量
- :=如果用于同时定义多个变量, 会有退化赋值现象,如果通过:=定义多个变量, 但是多个变量中有的变量已经在前面定义过了, 那么只会对没有定义过的变量执行:=, 而定义过的变量只执行=操作
例如:
num2 := 123
num2, value2 := 456, 789
fmt.Printf("%d, %d", num2, value2) //456, 789