package main
import "fmt"
/*
变量声明方式1: var <var_name> [<type>] [= <value>]
可以省略<type>,根据值内容自行判定类型
可以省略<value>(初始化),go 会给变量使用默认值初始化
*/
/*
变量声明方式2: <var_name> := <value>
根据值自行判定变量类型声明一个"新"变量,变量名称必须是一个没有声明过的名称
只能在函数使用的便捷声明方式,不能声明全局变量
*/
// 变量声明默认值: 如果声明变量未赋值,go 会默认给变量设置 int=0 (bool=false, ptr=nil) 值
// 变量声明规范:驼峰命名法(不建议使用 _ 作为分隔符)
/*
全局变量:声明一个变量
只能使用声明方式1 指定变量类型,不支持使用声明方式2
*/
var gInt int
// gInt := 100 // error
// 全局变量:声明多个变量
var (
gBool bool
gStr string
)
func setGlobalVar() {
fmt.Println("global var default value:", gInt)
gInt = 1000
fmt.Println("global var value:", gInt)
gBool = false
gStr = "global string"
fmt.Println(gBool, gStr)
}
func defaultValue() {
var i int // 整型 0
var b bool // 布尔型 false
var f float32 // 浮点型 0
var s string // 字符串 空字符串
var pa *int // 指针 <nil>
var aa []int // 数组 []
fmt.Println(i, b, f, s, pa, aa)
}
// 声明方式1
func variableInit() {
// 声明方式1: 指定类型
var i int = 10
var b bool = true
var s string = "I'm string"
fmt.Println(i, b, s)
// 声明方式1: 根据值自行判定变量类型(不需要显示的声明变量类型)
var ia = 11
var ba = false
var sa = "two string"
fmt.Println(ia, ba, sa)
}
// 声明方式2
func variableInit2() {
// 声明方式2: 根据值自行判定变量类型
i := 100
b := true
s := "new string"
fmt.Println(i, b, s)
// i := 2 // 声明方式2,相同变量名不允许出现两次
// i := "abc"
}
// 多变量赋值
func variableInitMulti() {
// 指定类型多变量赋值必须是同一类型
var a, b, c int = 1, 2, 3
fmt.Println(a, b, c)
// 自行判断类型可初始化不同类型的变量
var a1, b1, s = 100, false, "str"
fmt.Println(a1, b1, s)
}
func variableInitMulti2() {
a, f, s := 101, 0.1, "str"
fmt.Println(a, f, s)
}
// 变量赋值 =
func variableSetValue() {
var i int
i = 10
s := "string"
s = "set string"
fmt.Println(i, s)
// 交换变量
a, b := 2, 3
a, b = b, a
fmt.Println("a <-> b", a, b)
}
// 变量赋值
func variableSetValueIgnore() {
// 使用 _ 作为空白占位符,抛弃某一个位置的变量值,常用于只获取所关注的变量
// _ 作为空白占位符,无法使用或赋值
var a, _, c = 1, false, 3
fmt.Println(a, c)
// 抛弃多个变量
var f, _, _ = 0.1, "str", 1
fmt.Println(f)
}
func main() {
fmt.Println("variable")
setGlobalVar()
defaultValue()
variableInit()
variableInit2()
variableInitMulti()
variableInitMulti2()
variableSetValue()
variableSetValueIgnore()
}
Go 学习笔记-变量
最新推荐文章于 2023-06-09 15:38:46 发布