var myName string // 驼峰命名法
var my_name string // 短横线分隔命名法
var user_id int // 短横线分隔命名法,常用于导出变量
var userID int // 驼峰命名法,常用于导出变量
const MaxConnections = 10 // 导出常量,驼峰命名法
2. 变量的使用
变量基本使用示例
package main
import (
"fmt"
)
// 全局变量,
var g1 int = 10
func main() {
fmt.Println("----------局部变量----------")
// 变量定义、赋值
var age int8 = 18
fmt.Println(age)
// 变量定义,使用默认初始值
var age2 int
fmt.Println(age2)
/*
// go1.22版本报错,should merge variable declaration with assignment on next line (S1021)
var age3 int
age3 = 20
fmt.Println(age3)
*/
// 变量定义、使用、赋值
var age3 int
fmt.Println(age3)
age3 = 20
fmt.Println(age3)
// 变量类型自动推导
var age4 = 30
fmt.Println(age4)
// 短变量定义,自动类型推导
age5 := 40
fmt.Println(age5)
// 定义多个变量,使用默认初始化
var n1, n2, n3 int
fmt.Println(n1, ", ", n2, ", ", n3)
// 定义多个变量,同时初始化,自动推导类型
var m1, m2, m3 = 12, "MMM", 54
fmt.Println(m1, ", ", m2, ", ", m3)
// 短变量定义多个变量,自动推导类型
s1, s2, s3 := 12, "MMM", 54
fmt.Println(s1, ", ", s2, ", ", s3)
// 定义多个变量,多用于全局变量
var (
v1 int
v2 string
)
v1 = 16
v2 = "4545"
fmt.Println(v1, ", ", v2)
// 常量,值不可改变
const c1 int = 18
fmt.Println(c1)
// c1 = 10, 错误:cannot assign to c1 (neither addressable nor a map index expression) (compile)
fmt.Println("----------全局变量----------")
// 打印全局变量
fmt.Println(g1)
}
为完成某一功能的程序指令(语句)的集合,(func Sums(a int, b int) int {// TODO…})
切片
对数组的一个连续片段的引用,(var s []int)
接口
接口类型就是一组方法的集合,(type Shape interface{// TODO…})
map
一种无序的键值对的集合,(var mp map[string]int)
4. 枚举类型
Go语言没有内置枚举类型,需要通过其它方式实现类似枚举类型的功能
自定义枚举值:
func TestEnum() {
const (
kEqual = 0
kGreator
kLess
)
a := 10
b := 20
if a > b {
fmt.Println(kGreator)
} else if a == b {
fmt.Println(kEqual)
} else {
fmt.Println(kLess)
}
}
自增枚举值:
func TestEnum() {
const (
kEqual = iota
kGreator
kLess
)
a := 10
b := 20
if a > b {
fmt.Println(kGreator)
} else if a == b {
fmt.Println(kEqual)
} else {
fmt.Println(kLess)
}
}