2. go 的基本语法

1. go 变量声明:

  1. 标准声明:
var 变量名 变量类型

var v0 int // 默认值0
var v1, v2 string // 默认值空字符串
  1. 批量声明:
var (
    变量名 变量类型
    变量名 变量类型
  ...
)

var (
    v3 bool // 默认值 false
    v4 float32 // 默认值0
)
  1. 简短声明(声明并赋值):
变量名1, 变量名2, ... := 表达式1, 表达式2, ...

v5, v6 := 100, true

简短模式存在以下局限:

①需要显式初始化数据;
②不能显式提供数据类型;
③只能用在函数内部;


2. 两个数据相互交换

v7, v8 := "hello", "go"
fmt.Println(v7, v8) // hello go
v7, v8 = v8, v7
fmt.Println(v7, v8) // go hello

3. 匿名(缺省)变量

使用 _ 表示缺省变量,缺省变量是不会被分配内存空间的,所以不会占用内存;

缺省的变量是被抛弃了,所以不能使用该变量;

func main() {
    v9, _ := fetchData()
    _, v10 := fetchData()
    fmt.Println(v9, v10) //100 150
}

func fetchData() (int, int) {
    return 100, 150
}

4. 变量的作用域

  1. 变量的类型可以分为以下3种:

函数内定义的变量称为 局部变量
函数外定义的变量称为 全局变量
函数定义中的变量称为 形式参数

  1. 局部变量:局部变量不是一直存在的,它只在定义它的函数被调用后存在,函数调用结束后这个局部变量就会被销毁。
  2. 全局变量:①全局变量只需要在一个源文件中定义,就可以在所有源文件中使用;②全局变量声明必须以 var 关键字开头,如果想要在外部包中使用全局变量的首字母必须大写。

注意:全局变量与局部变量名称可以相同,但是函数体内的局部变量具有较高优先级;

  1. 形式参数:形式参数只在函数调用时才会生效,函数调用结束后就会被销毁,在函数未被调用时,函数的形参并不占用实际的存储单元,也没有实际值。

你可能感兴趣的:(2. go 的基本语法)