package main

import "fmt"
	//在花括号外的变量成为:全局变量
	//全局变量只能使用前三种方式,第四种简短声明 :=  不支持使用
	var name int = 18 //第一种:指定变量的类型,并且赋值
	var name1 int //第二种:指定变量类型,但是不赋值,使用默认数值
	var name3 = 30 //第三种:如果不指定变量类型会进行一个自动类型推断
	//name4 := 16

	//全局变量多变量定义,这里加括号是为了提高代码可读性
	var (
		name5 = 19
		name6 = "独孤混蛋"
	)

func main()  {
		//在{花括号}内声明的变量称为:局部变量
	//学习四种不同的变量使用方式
	//第一种:指定变量的类型,并且赋值
	var n1 int = 18
	fmt.Println(n1)

	//第二种:指定变量类型,但是不赋值,使用默认数值
	var n2 int
	fmt.Println(n2)

	//第三种:如果不指定变量类型会进行一个自动类型推断
	var n3 = 20
	fmt.Println(n3)

	//第四种:省略var 使用:= 进行赋值
	n4 := 25
	fmt.Println(n4)

	fmt.Println("--------------分割线-------------")

	//使用四种不同的变量使用方式进行多变量声明
	//第一种:指定变量的类型,并且赋值
	var n5,n6,n7 int = 25,26,27
	fmt.Println(n5)
	fmt.Println(n6)
	fmt.Println(n7)
	//分别输出之外,这里也可以作为一行输出:
	fmt.Println(n5,n6,n7)

	//第二种:指定变量类型,但是不赋值,使用默认数值
	var n9,n10,n11 int
	fmt.Println(n9,n10,n11)

	//第三种:如果不指定变量类型会进行一个自动类型推断
	var n12,n13,n14 = 18,"上官狗蛋",177
	fmt.Println(n12,n13,n14)

	//第四种:省略var 使用:= 进行赋值
	n15,n16,n17 := 19,"西门下雨",188
	fmt.Println(n15,n16,n17)

	fmt.Println("--------------分割线-------------")
	//使用全局变量
	fmt.Println(name)
	fmt.Println(name1)
	fmt.Println(name3)
	//使用全局多变量
	fmt.Println(name5)
	fmt.Println(name6)
}

总结:

两个变量:局部变量和全局变量

局部四种变量的使用方式:

第一种:声明类型使用变量

第二种:不声明类型 使用默认值

第三种:不声明类型 直接赋值变量(自动推导类型)

第四种:变量直接赋值

全局变量的三种使用方式:

第一种:声明类型使用变量

第二种:不声明类型 使用默认值

第三种:不声明类型 直接赋值变量(自动推导类型)

第四种简短声明在全局变量中并不能使用

局部变量和全局变量都可以使用多变量声明

var(

变量 = 赋值

变量1 = 赋值2