变量
声明变量
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)
}常量总结
- 常量数值无法修改。
- 常量定义之后可以不使用。
- 常量不能使用简短方式定义。
- 常量中使用的数据类型只能是 整型、布尔、浮点、复数类型、字符串类型。