zoukankan      html  css  js  c++  java
  • go语言-值类型与引用类型

      https://www.cnblogs.com/java-zhao/p/9942311.html

     https://blog.csdn.net/TDCQZD/article/details/82683678

    https://blog.csdn.net/TDCQZD/article/details/82684750

    一、常见的值类型和引用类型

    值类型:基本数据类型 int 系列, float 系列, bool, string 、数组和结构体struct

    引用类型:指针、slice切片、map、管道chaninterface 等都是引用类型

    二、内存中堆区和栈区的简单示意图

     

    分析:

    1. 一般来说,堆区存放的是生命周期长的变量, 比如全局变量。

    2. 一般来说,栈区区存放的是生命周期段的变量, 比如局部变量。

    3. go中 栈区和堆区是逻辑的划分[编译器处理]

    4. go中,编译器加入逃逸分析,根据实际情况来决定到底这个变量应该存放到哪个区。

    5. go中,我们更多的分析变量的生命周期。

    三、值类型和引用类型使用特点:

    1、值类型:变量直接存储值,内存通常在栈中分配

     

    2、引用类型:变量存储的是一个地址,这个地址对应的空间才真正存储数据(),内存通常在堆上分配,当没有任何变量引用这个地址时,该地址对应的数据空间就成为一个垃圾,由GC来回收。

  • 相关阅读:
    外键的缺陷
    laravel 关联模型
    n的阶乘末尾出现的次数
    JavaScript的self和this使用小结
    cocos2dx中的内存管理方式
    c++ 与 lua 简单交互参数介绍
    c++的单例模式及c++11对单例模式的优化
    cocos2dx帧动画
    cocos2dx中坐标系
    cocos2dx中替代goto的用法:do{}while(0)和CC_BREAK_IF
  • 原文地址:https://www.cnblogs.com/sdadx/p/10230414.html
Copyright © 2011-2022 走看看