指针(pointer)
- 概念:指针用于存放另一个变量的内存地址,它作为形参传递,可以提高程序的执行效率。
- 声明:var P1 *int
- 赋值:a := 10 P1 = &a
- 取值:(“变量值: d%”, *P1)
字典(map)
- 概念:也是基于数组的上层封装,键值对集合,键名不能重复。
- 声明:
方式1:var A = map[string] Developer /* 未创建底层数组 */
方式2:B := map[string] Developer{} /* 创建了底层数组 */
方式3:C := make(map[string]Developer) /* 创建了底层数组 */
- 查找:value , ok := M[“003”] /* ok 用来判断该键值是否存在 */
- 删除:delete(M2,”num1”)
切片(slice)
- 概念:封装在数组之上,操作更加灵活,作为函数值传递比数组快;长度动态的,可设定容量。
- 声明
方式1:var A []int /* 声明*/
方式2:B := []int{1,2,3,4,5} /* 声明并初始化*/
方式3:C := make ([]int,5,10) /* make用于实例化切片,集合,通道,new实例化对象 */
- 取值:(口诀:从0开始,前不包括,后包括)
C[,3] /* 1,2,3 */
C[2,] /* 3,4,5 */
C[1,2] /* 2 */
- 追加:A = append(A,1) /* append会自动开辟内存空间 */
- 复制:copy(C,B) /* B复制给C */
对象(struct)
type Actor struct {
name string
style string
}
接口(interface)
type Act interface {
sing()
dance()
}