03-变量和作用域

1 变量声明

1.1标准格式

var 变量名 变量类型 = 值 

1.2 不声明类型

说明:此时 类型会自行判断

  • 语法
var 变量名 = 值 

1.3 不声明值(使用默认值)

  • 语法
var 变量名 变量类型
  • 默认值
    1)数值类型(包括complex64/128)为 0
    2)布尔类型为 false
    3)字符串为 ""(空字符串)
    4)以下几种类型为 int
var a *int
var a []int
var a map[string] int
var a chan int
var a func(string) int
var a error // error 是接口
  • 示例
package main

import "fmt"

func main() {
    var i int
    var f float64
    var b bool
    var s string
    fmt.Printf("%v %v %v %q\n", i, f, b, s)
}

1.4 :=

变量名 := 值

注意
:= 的写法只有在函数内才能生效,在函数外语法报错

如下图 sum := 0 在函数外定义语法报错
image.png

如果放在函数内,则语法检测通过

image.png

2. 多变量一次声明

2.1 相同类型变量

var vname1, vname2, vname3 type
vname1, vname2, vname3 = v1, v2, v3
var vname1, vname2, vname3 = v1, v2, v3 
vname1, vname2, vname3 := v1, v2, v3 

2.2 不同类型的变量

var (
    vname1 v_type1
    vname2 v_type2
) 

3. 变量作用域

3.1 局部变量

在函数体内声明的变量称之为局部变量

它们的作用域只在函数体内(参数和返回值变量也是局部变量)。

3.2 全局变量

在函数体外声明的变量称之为全局变量

全局变量可以在整个包甚至外部包(被导出后)使用。

全局变量与局部变量名称相同时,局部变量会被优先考虑


posted on 2021-11-16 21:01  运维开发玄德公  阅读(6)  评论(0编辑  收藏  举报  来源

导航