内容简介:1、初始化:数组需要指定大小,不指定也会根据初始化的自动推算出大小,不可改变数组: a := [...]int{1,2,3} a := [3]int{1,2,3}2、切片不需要指定大小
切片
1、初始化:数组需要指定大小,不指定也会根据初始化的自动推算出大小,不可改变
数组: a := [...]int{1,2,3} a := [3]int{1,2,3}
2、切片不需要指定大小
切片: a:= []int{1,2,3} a := make([]int, 5) a := make([]int, 5, 10)
Food :=[]string{"bread","Salad","egg"} fmt.Printf("切片操作:%q\n长度:%v\n容量:%v",Food[:2],len(Food),cap(Food)) Food = append(Food,"Super Banana") 输出结果: 切片操作:["bread" "Salad"] 长度:3 容量:3
Map集合
var ccm map[string]string ccm = make(map[string]string) ccm["France"] = "Paris" ccm["Italy"] = "罗马" ccm["Japan"] = "东京" ccm["India"] = "新德里" for k,v := range ccm{ fmt.Println(k,v) } delete(ccm,"India") fmt.Println("\n删除Indea之后的map",ccm) 输出结果: France Paris Italy 罗马 Japan 东京 India 新德里 输出结果: 删除Indea之后的map map[France:Paris Italy:罗马 Japan:东京]
接口
接⼝是一个或多个方法签名的集合,任何非接口类型只要拥有与之对应的全部方法实现 (包括相同的名称、参数列表以及返回值。),就表示它"实现" 了该接口,无需显式在该类型上添加接口声明。此种方式又被称作Duck Type。
package main import "fmt" func main() { People := Student{"Mr.Potato"} fmt.Println(People.ReturnName()) checkInterface(People) } type People interface { ReturnName() string } // 定义一个结构体 type Student struct { Name string } // 定义结构体的一个方法。 // 突然发现这个方法同接口People的所有方法(就一个)//此时可直接认为结构体Student实现了接口Peoplefunc (s Student) ReturnName() string { return s.Name } func checkInterface(test interface{}){ if _,ok := test.(People); ok{ fmt.Println("No problem!!!") } }
以上所述就是小编给大家介绍的《Go 简明笔记 高级篇》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 【每日笔记】【Go学习笔记】2019-01-04 Codis笔记
- 【每日笔记】【Go学习笔记】2019-01-02 Codis笔记
- 【每日笔记】【Go学习笔记】2019-01-07 Codis笔记
- vue笔记3,计算笔记
- Mysql Java 驱动代码阅读笔记及 JDBC 规范笔记
- 【每日笔记】【Go学习笔记】2019-01-16 go网络编程
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。