初探Golang(1)-变量 | 小册免费学

176

要学习golang,当然要先配置好相关环境啦。

1. Go 安装包下载

studygolang.com/dl 在Windows下,直接下载msi文件,在安装界面选择安装路径,然后一直下一步就行了。

在cmd下输入

go version

即可看到go安装成功

2. Goland安装

www.jetbrains.com/go/download… 在官网下载安装包 在安装界面选择安装路径,然后一直下一步就行了。

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 int
 a=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