变量

声明变量

var age int

在这里,var是声明关键字,age是变量名,int是变量的类型.
这里只是声明了一个变量,并没有给当前变量赋值。
实际情况下,我们在定义变量的时候,就会对变量进行赋值操作。

如何进行变量赋值

var age int
age = 25

上面的代码中,是先进行声明,再赋值。
Go语言支持根据数据推导数据类型的方法。所以在定义的时候可以不用写数据类型,直接根据你所初始化的值,来推导出定义的数据类型。

var name = "张三"
var age = 25

简短定义

// 简短定义方式  声明并赋值 
name :="王铁蛋"
age := 10

多变量定义

//var方式声明多变量
 var a,b,c int
 a=1 
 b=2 
 c=3
//也可以写在一行
var a1,a2,a3 int =10,20,30
//也可以省略类型 根据数据进行类型推导
 var a1,a2,a3 =10,20,"ago"
//如果是多种类型 也可以使用集合
var(
    a1 =""
    a2 =10
)

简短定义方式定义多个变量。 需要注意的是,一个变量在程序中只能够定义一次,重复定义就会报错

// 简短定义方式定义多变量
name,age:="王钢蛋",18 
println(name,age)
// 重复定义就报错
name,age:="zhangsan",19
// 如果定义的左边有一个新的变量
name,age,sex:="lisi",20,"女"
// 左边有一个新的,对于前两个就是修改操作,后一个是声明并赋值操作。

变量使用

在Go语言中,可以很容易的实现变量值的交换

a := 100
b := 200
b,a = a,b
fmt.Println(a,b)

匿名变量

匿名变量也就是没有名字的变量, 开发过程中可能会遇到有些变量不是必须的。匿名变量使用下划线_ 表示。 _ 也称为空白标识符,任何类型都可以使用它进行赋值,而且任何类型赋值后都将直接被抛弃,所以在使用匿名变量时,表示后续代码不需要再用此变量。

package main

import (
    "fmt"
)

func main() {
    a, _ := 100, 200
    //这里第二个值200赋给了匿名变量_ 也就忽略了不需要再次打印出来
    fmt.Println(a)
}

变量的作用域

变量在程序中有一定的作用范围,如果一个变量声明在函数体的外部,这样的变量被认为是全局变量,全局变量在整个包内,也就是当前的package内都可以被调用得到。如果变量定义在函数体内部,则被称之为局部变量。例如下面代码:

package main

import (
    "fmt"
)

// 全局变量
var name = "张三"

// 主函数 程序的入口
func main() {
    fmt.Println(name) // 可以访问到全局变量name

    myFunc()
}

// 自定义函数
func myFunc() {
    fmt.Println(name) // 这里也可以访问到全局变量name

    age := 30
    fmt.Println(age) // age为myFunc的局部变量 只能够在函数内部使用
}

变量总结

  • 变量使用前必须定义。
  • 变量名不能重复定义。
  • 如果是简短定义方式,左边变量至少需要有一个是新值。
  • 定义了变量,就必须使用,不然无法通过编译。
  • 全局变量不使用也能编译通过,如果全局变量名与局部变量名相同,优先使用局部变量。
  • 简短定义方式不能定义全局变量,也就是不能声明在函数外部。
  • 列表项目。

常量

常量的申明

const PI float64 = 3.14

多常量申明

const (
    PI float64 = 3.14
    PI2
    Age = 25
)

如果未声明常量的类型和值,它将从上一个常量中获取它,在上图中PI2将会从PI上获取类型和值,如果新声明了常量,并且有分配值,它就是新声明的常量。 例如上图的Age就是int类型的25。 如果再继续声明Age2不给Age2赋初始值的话,默认就会取上一个Age的值和类型

常量的作用域

常量只能在其声明的范围内使用,如果在一个函数内部作用域中声明的常量与外部名称相同,则只用自己内部的常量,它将忽略外部的常量

package main

import "fmt"

const PI float64 = 3.14

// 主函数 程序的入口
func main() {
    const PI float64 = 3.1415926
    // 优先使用局部变量,输出3.1415926
    fmt.Println(PI)

    myFunc()
}

// 自定义函数
func myFunc() {
    // 函数内部使用全局变量
    fmt.Println(PI)
}

常量总结

  • 常量数值无法修改。
  • 常量定义之后可以不使用。
  • 常量不能使用简短方式定义。
  • 常量中使用的数据类型只能是 整型、布尔、浮点、复数类型、字符串类型。
Last modification:November 10, 2022
If you think my article is useful to you, please feel free to appreciate