Golang之变量

Golang之变量

变量(Variable)的功能是存储数据。不同的变量保存的数据类型可能会不一样。经过半个多世纪的发展,编程语言已经基本形成了一套固定的类型,常见变量的数据类型有:整型、浮点型、布尔型等。

Go语言中的每一个变量都有自己的类型,并且变量必须经过声明才能开始使用。

申明变量

package main

import "fmt"

func main() {
	// 定义变量
	var i int = 10
	// var i int
	// i = 10
	fmt.Println("i=", i)
	/*
		变量使用的三种方式:
			①指定变量类型,声明后若不赋值,则使用默认值
			②根据值自动判断类型(类型推导)
			③省略var关键字,注意 := 左边的变量不应该是已经申明的,否则会编译错误
	*/

	// ①指定变量类型,声明后若不赋值,则使用默认值
	var num int
	fmt.Println("num=", num) // int类型默认值为0

	// ②根据值自动判断类型(类型推导)
	// 浮点数类型有float32和float64,Golang默认浮点类型是float64
	var num2 = 10.11
	fmt.Printf("num2的类型是:%T\n", num2)

	// ③省略var关键字,注意 := 左边的变量不应该是已经申明的,否则会编译错误
	name1 := "Tom" // <==> var name string = "Tom"
	fmt.Printf("我的名字是:%s\n", name1)

	// 多变量申明
	// 一次性申明多个相同类型的变量
	var n1, n2, n3 int
	fmt.Print(n1, n2, n3)

	// 一次性申明多个不同类型的变量
	var name, age, weight = "Lilei", 20, 100.10 // <==> name, age, weight := "Lilei", 20, 100.10
	fmt.Printf("\n姓名:%s\t年龄:%d岁\t体重:%fKG\n", name, age, weight)

}

全局变量

package main

import "fmt"

// 申明多个全局变量
var name = "zzn"
var age = 28
var weight = 150.99

// 上面的方式等价于下面
var (
	id     = 100
	course = "Golang"
	score  = 90.5
)

func main() {
	fmt.Printf("姓名:%s\t年龄:%d岁\t体重:%fKG\n", name, age, weight)
	fmt.Printf("课程ID:%d\t课程:%s\t得分:%f\n", id, course, score)
}

变量使用注意事项

package main

import "fmt"

/*
变量使用注意事项:
	1.变量在该区域内的数据值可以在同一类型范围内变化
	2.变量在统一作用域内不能重复
	3.变量=变量名+数据值+数据类型   ★★★★★
	4.变量如果没有赋值,则会使用默认值,如int默认值为0,string默认值为空串
*/

func main() {
	// 1.变量在该区域内的数据值可以在同一类型范围内不断变化
	var i int = 10
	i = 20
	i = 30
	fmt.Println("i=", i)
	// i = 3.14  不同类型 不能赋值
	// var i = 50 不能在同一个作用域内重名
	// i := 50 这样在同一个作用域内也是重名
}