3.1 变量定义

一、基本格式

package main

import "fmt"

func main() {
	fmt.Println("Hello World")
}

二、定义变量

  1. 使用var关键字定义变量

  2. 函数内定义的变量如果不被使用,会报错

  3. 基本定义方式

    func variableZeroValue() {
    	var a int
    	var b string
    	fmt.Printf("%d  %q\n", a, b)
    }

    备注:

    1. 以函数形式定义与main()主函数同级

    2. 变量作用域在这个函数内

    3. var声明变量,指定变量类型在变量名后声明

    4. fmt.Printf("%d %q\n", a, b)整数默认值为0,字符串默认值为”“用这种方式可以输出查看

    5. 可同时定义多个变量

  4. 初始赋值定义方式

    func variableInitialValue() {
    	var a, b int = 3, 4
    	var s string = "abc"
    	fmt.Println(a, b, s)
    }

    备注:定义时候可以同时定义多个变量,并同时赋值

  5. 根据初始值自动选择变量类型

    func variableTypeDeduction() {
    	var a, b, c, d = 3, 4, true, "test"
    	var s = "str"
    	fmt.Println(a, b, c, d, s)
    }

    备注:这种方式可以定义多中类型的变量

  6. 变量定义缩写与修改值

    func variableShorter() {
    	a, b, c, d := 3, 4, true, "str"
    	fmt.Println(a, b, c, d)
    	b = 6
    	fmt.Println(a, b, c, d)
    }

    备注:

    1. 函数作用域内的变量定义,可以省略var使用:=的形式来定义变量并赋值

    2. 首次定义变量的时候需要使用var声明或使用:=赋值,修改值直接=即可

  7. 包内变量定义(作用域包内)

    var aa = 11
    var bb = "aaa"

    备注:

    1. 在所有函数外,用var声明,赋值

    2. 包内变量不可以使用:=赋值

  8. 包内变量简写方式:

    var (
    	cc = 4
    	dd = true
    )

    备注:可以直接使用var()的形式,在括号内定义变量,减少var的编写次数

三、总结

  1. 使用var关键字:

    1. var a, b, c bool

    2. var s1, s2 string = "hello", "world"

    3. 可以放在函数内,或直接放在包内

    4. 使用var()集中定义变量

  2. 让编译器自动决定类型

    1. var a, b, i, s1, s2 = true, false, 3, "hello", "world"

  3. 使用:=定义变量

    1. a, b, i, s1, s2 := true, false, 3, "hello", "world"

    2. 只能在函数内使用

Last updated

Was this helpful?