go的引用类型

时间:2025-02-23 08:23:23

指针(pointer)

  • 概念:指针用于存放另一个变量的内存地址,它作为形参传递,可以提高程序的执行效率。
  • 声明:var P1 *int
  • 赋值:a := 10   P1 = &a
  • 取值:(“变量值: d%”, *P1)

字典(map)

  • 概念:也是基于数组的上层封装,键值对集合,键名不能重复。
  • 声明:

方式1var A = map[string] Developer           /* 未创建底层数组 */

方式2B := map[string] Developer{}              /* 创建了底层数组 */

方式3C := make(map[string]Developer)     /* 创建了底层数组 */

  • 查找:value , ok  :=  M[“003”]                    /*  ok 用来判断该键值是否存在  */
  • 删除:delete(M2,”num1”)

切片(slice)

  • 概念:封装在数组之上,操作更加灵活,作为函数值传递比数组快;长度动态的,可设定容量。
  • 声明

方式1var A []int                             /* 声明*/

方式2B :=  []int{1,2,3,4,5}              /* 声明并初始化*/

方式3C :=  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()          

}