系列文章
【golang学习之旅】使用VScode安装配置Go开发环境
【golang学习之旅】报错:a declared but not used
【golang学习之旅】Go 的基本数据类型
【golang学习之旅】深入理解字符串string数据类型
【golang学习之旅】go mod tidy
【golang学习之旅】记录一次 panic case : reflect: reflect.Value.SetInt using unaddressable value
【golang学习之旅】记录一次 error case : full error output: cc1: error: unrecognized command line option
【golang学习之旅】Go程序快速开始 & Go程序开发的基本注意事项
【golang学习之旅】Go语言常用转义字符
目录
- 系列文章
- 变量声明方式
- 第一种
- 第二种
- 第三种
- 多变量声明
- 局部变量
- 全局变量
变量声明方式
第一种
指定变量类型,声明后若不赋值则使用默认值。
package mainimport "fmt"func main() {// 不赋值var var1 intfmt.Println("var1:", var1)// 赋值var var2 int = 10fmt.Println("var2:", var2)
}输出:
var1: 0
var2: 10
说明:
-
这里的变量声明格式:
var 变量名 变量类型
var 变量名 变量类型 = 初值
-
var
这个关键字用来表示后面跟着的是变量 -
int 类型变量的默认值是0
第二种
不直接写出类型,但需写出变量值,编译器会根据值自动判定变量类型(类型推导)。
package mainimport ("fmt""reflect"
)func main() {var num = 10fmt.Println("num = ", num)fmt.Println("num 的类型是", reflect.TypeOf(num))var str = "hello world!"fmt.Println("str = ", str)fmt.Println("str 的类型是", reflect.TypeOf(str))
}输出:
num = 10
num 的类型是 int
str = hello world!
str 的类型是 string
说明:
-
这里的变量声明格式:
var 变量名 = 初值
-
reflect包下的TypeOf函数用于获取变量的类型信息
第三种
省略 var 关键字,而使用 :=
这个符号。
package mainimport ("fmt""reflect"
)func main() {num := 10.0fmt.Println("num = ", num)fmt.Println("num 的类型是", reflect.TypeOf(num))str := "hello world!"fmt.Println("str = ", str)fmt.Println("str 的类型是", reflect.TypeOf(str))
}输出:
num = 10
num 的类型是 float64
str = hello world!
str 的类型是 string
说明:
-
这里的变量声明格式:
变量名 := 初值
-
:=
左侧的变量必须是没有声明过的
多变量声明
局部变量
package mainimport "fmt"func main() {// 多变量类型相同var n1, n2, n3 intfmt.Println("n1 = ", n1, "n2 = ", n2, "n3 = ", n3)// 多变量类型不同--使用var声明var n4, str1, f1 = 1, "hello", 3.4fmt.Println("n4 = ", n4, "str1 = ", str1, "f1 = ", f1)// 多变量类型不同--使用 := 声明n5, str2 := 10, "world"fmt.Println("n5 = ", n5, "str2 = ", str2)
}输出:
n1 = 0 n2 = 0 n3 = 0
n4 = 1 str1 = hello f1 = 3.4
n5 = 10 str2 = world
全局变量
可以使用小括号()来一次性声明全局变量
package mainimport "fmt"var (n1 = 10n2 = 20str = "hello"
)func main() {fmt.Println("n1:", n1, "n2:", n2, "str:", str)
}输出:
n1: 10 n2: 20 str: hello