💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
>[info] Go语言变量常量定义 **四种定义方式:** 1. 定义变量:var 变量名 变量类型 ```console // string默认值:空 // int默认值:0 // 布尔类型默认值:false // 切片、函数、指针变量默认值:null // 方式一 var age int var age int = 18 var name string = "pprof.cn" // 方式二 sex := 1 // 变量批量定义 var ( name string = "wqs" age int = 18 ) var ( name string age int ) name = "wangqianshun" age = 20 // 变量交换 // a 与 b 交换值 var a int = 100 var b int = 200 b, a = a, b fmt.Println(a, b) // 匿名变量_ // 只需要a的值 不需要b a, _ := test() // test() 函数返回 a,b 两个从参数 fmt.Println(a) ``` 2. 定义常量:const 变量名 = 值 ~~~ // 常量批量定义 const ( address = "中国" phone = 123 ) const URL string = "https://www.baidu.com" // 显示定义 const URL1 = "https://www.baidu.com" // 隐式定义 const a, b, c = 3.14, "wangqianshun", false // 同时定义多个 fmt.Println(URL, URL1) fmt.Println(a, b, c) // 特殊常量 iota (计数器) const ( a = iota b = iota c d = "hhh" e f = 100 g = iota h ) // 0 1 2 hhh hhh 100 6 7 fmt.Println(a, b, c, d, e, f, g, h) ~~~ 3. 定义类型:type 结构体名(func/interface/struct) ~~~ package main import "fmt" // 定义结构体 type userInfo struct { name string age int } func main() { // 创建结构体 u := userInfo{ name: "test", age: 18, } // 输出其中属性 fmt.Println(u.age) } ~~~ 4. 定义方法&函数:func 函数名(){} / func(结构体)方法名(){} ~~~ // 定义函数 func hello() { fmt.Println("Hello World") } ~~~ ~~~ package main import "fmt" // 定义结构体 type userInfo struct { name string age int } // 方法:根据结构体而定义的 func (u userInfo) getAge() int { return u.age } func main() { // 创建结构体 //u := userInfo{ // name: "test", // age: 18, //} u := userInfo{} u.name = "wqs" u.age = 18 // 输出其中属性 fmt.Println(u.getAge()) } ~~~ 4. 定义指针 ~~~ package main import "fmt" func main() { // 指针 n := 20 sum(&n)// 0x123 内存地址 fmt.Println(n) } func sum(n *int) { *n = *n + 10 } ~~~ 5. 定义 map 集合 ~~~ // 定义map集合 var goClassMap map[string]string goClassMap = make(map[string]string) // 或 // goClassMap := make(map[string]string) // 添加数据 goClassMap["teacher"] = "shineyork" goClassMap["contents"] = "go" fmt.Println(goClassMap) maps := make(map[string]string, 0) maps["name"] = "wangqianshun" fmt.Println(maps) // 值类型是切片 smap := make(map[string][]string, 0) s := make([]string, 0) s = append(s, "i", "o") smap["123"] = s fmt.Println(smap) // 切片为原型,value是map map1 := make([]map[string]string, 2) map1[0] = maps map1[1] = maps // fmt.Println(map1) for key, val := range map1 { fmt.Println(key, val) } ~~~