系列文章
【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语言常用转义字符
目录
变量声明方式
第一种
指定变量类型,声明后若不赋值则使用默认值。
go
package main
import "fmt"
func main() {
// 不赋值
var var1 int
fmt.Println("var1:", var1)
// 赋值
var var2 int = 10
fmt.Println("var2:", var2)
}
输出:
var1: 0
var2: 10
说明:
-
这里的变量声明格式:
var 变量名 变量类型
var 变量名 变量类型 = 初值
-
var
这个关键字用来表示后面跟着的是变量 -
int 类型变量的默认值是0
第二种
不直接写出类型,但需写出变量值,编译器会根据值自动判定变量类型(类型推导)。
go
package main
import (
"fmt"
"reflect"
)
func main() {
var num = 10
fmt.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 关键字,而使用 :=
这个符号。
go
package main
import (
"fmt"
"reflect"
)
func main() {
num := 10.0
fmt.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
说明:
-
这里的变量声明格式:
变量名 := 初值
-
:=
左侧的变量必须是没有声明过的
多变量声明
局部变量
go
package main
import "fmt"
func main() {
// 多变量类型相同
var n1, n2, n3 int
fmt.Println("n1 = ", n1, "n2 = ", n2, "n3 = ", n3)
// 多变量类型不同--使用var声明
var n4, str1, f1 = 1, "hello", 3.4
fmt.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
全局变量
可以使用小括号()来一次性声明全局变量
go
package main
import "fmt"
var (
n1 = 10
n2 = 20
str = "hello"
)
func main() {
fmt.Println("n1:", n1, "n2:", n2, "str:", str)
}
输出:
n1: 10 n2: 20 str: hello