Back
Featured image of post Go 声明变量的数个方法

Go 声明变量的数个方法

你知道Go变量写法的n种方法么

  1. 一般形式: var identifier type

    var name string

  2. 一次声明多个变量: var identifier1, identifier2 type var firstname lastname string

  3. 指定变量类型, 如果没有初始化,则变量默认为零值:

var v_name v_type
v_name = value
var name string
name = "honulu"

数值类型为 0, 布尔类型为 false,字符串为""(空字符串),其他大部分为 nil

  1. 分解值自行判断变量类型: var v_name = value

var name = "honulu"

  1. 省略var: v_name := value

    name := "honulu"

:=左侧没有声明新的变量,就产生编译错误

  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
    
var age1, age2 int
age1, age2 = 1, 2

var age1 age2 = 1, 2

name1, name2, name3 := "ho", "nu", "lu"
  1. 全局变量声明:

    var (
        vname1 v_type1
        vname2 v_type2
    )
    
var (
    a int
    b bool
)
  1. 不带声明格式的声明

只能在函数体里出现.

func main() {
    name, age := "HONULU", 2
}

声明了一个局部变量却没有在相同的代码块中使用它, 会得到编译错误, 单纯地赋值也是不够的, 这个值必须被使用.

全局变量是允许声明但不使用.

想要交换两个变量的值, 可以简单地使用a, b = b, a, 但是两个变量类型必须是相同的.

空白标识符_也可用于抛弃值, 如 _ , b = 5, 7中 5 被抛弃.

_ 实际上是一个只写变量, 你不能得到它的值. 这样做是因为 Go 语言中你必须使用所有被声明的变量, 但有时你并不需要使用从一个函数得到的所有返回值.

 package main

 import "fmt"

 func main() {
 _,numb,strs := numbers() //只获取函数返回值的后两个
 fmt.Println(numb,strs)
 }

 //一个可以返回多个值的函数
 func numbers()(int,int,string){
 a , b , c := 1 , 2 , "str"
 return a,b,c
 }

输出结果:

2 str
Licensed under CC BY-SA 4.0
comments powered by Disqus