声明变量的四种方式

方法1:只声明一个变量名及其数据类型但不赋值

  • 形式:var [变量名] [数据类型]

    package main
    
    import "fmt"
    
    func main() {
      // 方法1: 声明一个变量默认的值为0
      var a int
      fmt.Println("a = ", a)
    }
    
    // 运行结果:a = 0
  • 第七行当使用var声明之后没有赋值时,会给变量设置默认值0

方法2:声明一个变量及其数据类型并初始化值

  • 形式:var [变量名] [数据类型] = [初始化值]

    // 方法2: 声明一个变量,并且初始化一个值
    var b int = 100
    fmt.Println("b =", b)
    
    // 运行结果:b = 100

    方法3:声明一个变量省去数据类型通过赋值自动匹配数据类型

  • 形式:var [变量名] = [初始化值]

    // 方法3: 在初始化的时候,可以省去数据类型,通过值自动匹配当前的数据类型(不太推荐)
    var c = 300
    fmt.Println("c = ", c)
    
    // 运行结果: c = 300

    方法4(最常用):省去var关键字,直接自动匹配

  • 形式:[变量名] := [初始化值]

    // 方法4: 省去var关键字使用象牙运算符,直接自动匹配
    d := 102
    fmt.Println("d = ", d)
    
    e := 3.1415
    fmt.Println("e = ", e)
    
    // 运行结果:
    d = 102
    e = 3.1415

判断数据类型

GO语言中通过格式化输出printf来打印一个变量的数据类型

package main

import "fmt"

/*
4种变量的声明方法
*/

func main() {
    // 方法1: 声明一个变量默认的值为0
    var a int
    fmt.Println("a = ", a)
    fmt.Printf("a的数据类型为: %T\n", a)

    // 方法2: 声明一个变量,并且初始化一个值
    var b int = 100
    fmt.Println("b =", b)
    fmt.Printf("b的数据类型为: %T\n", b)

    // 方法3: 在初始化的时候,可以省去数据类型,通过值自动匹配当前的数据类型(不太推荐)
    var c = 300
    fmt.Println("c = ", c)
    fmt.Printf("c的数据类型为: %T\n", c)

    // 方法4: 省去var关键字使用象牙运算符,直接自动匹配
    d := 102
    fmt.Println("d = ", d)
    fmt.Printf("d的数据类型为:%T\n", d)

    e := 3.1415
    fmt.Println("e = ", e)
    fmt.Printf("e的数据类型为:%T\n", e)

}
  • 使用printf格式化输出,格式化输出时使用占位符,%T的作用就是打印变量的数据类型。(如上放代码13、18、23、28、32行)

运行结果:
image.png

补充:print、println、printf区别对比

  • println:打印的每一项之间都会有空行
  • Print:打印时没有空行
  • printf: 标准格式化输出,有占位符

4种声明变量方法的区别

  • 声明全局变量,方法一、方法二、方法三是可以的
  • 方法四只能在结构体内声明变量

前三种声明全局变量:

package main

import "fmt"

// 方法1、方法2、方法3声明全局变量
var gA int =100
var gB = 2
var gC int

func main() {
    fmt.Println("gA = ", gA, "gB = ", gB)
}

运行结果:
image.png
但是方法四使用象牙运算符赋值的方法不能用来声明全局变量:

package main

import "fmt"
gD := 1
func main() {
    fmt.Println("gD = ", gD)
}

运行结果:
image.png
报错,所以使用:=只能在结构体内使用,无法声明全局变量

同时声明多个变量

可以同时声明多个相同数据类型的变量,也可以同时声明不同数据类型的变量:

package main

import "fmt"

func main() {
    // 声明多个变量
    var xx, yy int = 100, 200  // 同时声明相同数据类型变量
    fmt.Println("xx = ",xx , "yy = ", yy)
    var ff, gg = 192, "hello"  // 同时声明不同数据类型的变量
    fmt.Println("ff = ",ff , "gg = ", gg)
}

运行结果:
image.png

写法上也可以将一行的多变量赋值拆成很多行来写:

package main

import "fmt"

func main() {
    // 多行的多变量声明
    var (
        vv int = 100
        ww bool = true
    )
    fmt.Println("vv = ", vv, "ww = ", ww)
}

运行结果:
image.png

最后修改:2024 年 03 月 13 日
如果觉得我的文章对你有用,请随意赞赏