var 声明变量

  • A+
所属分类:go语言

05 var 声明变量


1 基本格式

// 类型放在名字的后面,行尾无需分号
var name string
var age int
var isOk bool

=

2 批量声明

var (
    a string
    b int
    c bool
    d float32
)

=

3 变量初始化

Go语言在声明变量的时候,会自动对变量对应的内存区域进行初始化操作

变量若不赋值,则值为该类型的默认值

各类型的初始化默认值:

  • 整型和浮点型变量的默认值为【0】
  • 字符串变量的默认值为【空字符串】
  • 布尔型变量默认为【false】
  • 切片、函数、指针变量的默认为【nil】

声明同时指定初始值 =

可在声明变量的时候为其指定初始值:

var 变量名 类型 = 表达式

var name string = "Q1mi"
var age int = 18

// 同时多个
var name, age = "Q1mi", 20

声明时省略类型

可省略类型(此时会自动根据赋值来推导类型)

var name = "Q1mi"
var age = 18

=

4 短变量声明

在函数内部:短变量声明【使用 :=

package main

import (
        "fmt"
)

var m = 100  // 全局变量 m

func main() {
        n := 10
        m := 200  // 此处表示声明局部变量 m   关键点:仅在函数内部有效
        fmt.Println(m, n)
}

=

5 匿名变量

多重赋值时忽略其中某个值(使用下划线占位)

匿名变量不占用命名空间,不会分配内存,所以匿名变量不存在重复声明的问题

  1. 函数外的每个语句都必须以关键字开始(var、const、func等)
  2. := 不能用在函数外
  3. _ 多用于占位,表示忽略值
func foo() (int, string) {
        return 10, "Q1mi"
}

func main() {
        x, _ := foo()
        _, y := foo()
        fmt.Println("x=", x)
        fmt.Println("y=", y)
}


// 赋值结果:
x=10
y=Q1mi

w3cjava