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

值类型:

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

引用类型:

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

值传递:

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

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

引用传递:

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

  • 因为指向一个位置,所以单独修改其中的内容,原来的变量也会发生改变的;
  • 但是添加导致扩容,会让指针指向不同位置,修改不会影响之前的变量
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容