理解Go 值类型、引用类型、引用传递、值传递

值类型:

可以理解成基础类型。int、float、bool、array、sturct等

引用类型:

可以理解成值类型上层的组装。[]int、map[string]bool等

值传递:

值类型的变量,在方法中传递

会将变量完全复制一份(指针和值都复制一份)。在方法中操作的都是新复制的内容,修改操作,不会影响原来的变量。

引用传递:

引用类型的变量,在方法中传递
因为引用类型是一堆值类型的组合,在传递的时候会一半复制一般不复制(指针复制,指针指向的位置复制共用一个)。

  • 因为指向一个位置,所以单独修改其中的内容,原来的变量也会发生改变的;
  • 但是添加导致扩容,会让指针指向不同位置,修改不会影响之前的变量

你可能感兴趣的:(理解Go 值类型、引用类型、引用传递、值传递)