golang数据类型详解

本文介绍了Go语言的基础数据类型,包括整数、浮点数、字符、布尔和字符串,并详细阐述了字符串的UTF-8存储方式以及其不可变特性。此外,讨论了值类型与引用类型的区别,值类型如基本数据类型和结构体直接存储,而引用类型如slice、map和指针在堆上分配并需要通过`new`和`make`来初始化。`new`仅分配内存,`make`则会进行初始化。
摘要由CSDN通过智能技术生成

一基本数据类型分类

golang的基本数据类型有五种:

  1. 整数型
  2. 小数型
  3. 字符型
  4. 布尔型
  5. 字符串型

二字符串底层存储方式

string:
golang默认编码方式UTF-8
存储:字符集+编码
字符串类型的存储方式:data起始地址+字节个数
golang中字符串内容是不会修改的,所以编译器会把字符串分配到 只读内存段,若要修改,尽量重新定义或者通过转字节使用slice操作。

三值类型和引用类型

值类型定义:变量直接存储,通常在栈上分配
引用类型定义:变量存储的是data的内存地址,通常在堆上分配.
go中的值类型:五大基本数据类型以及结构体struct
go中的引用类型:切片slice,字典map,以及指针,通道chan

   **定义引用类型的两种方式:make &&new**
      new和make相同之处都是用来定义引用类型的,
      不同的是:
              1.new在定义引用类型时,只为他们分配内存,这些内存会被清零
                 make在定义时不仅要为他们分配内存而且要进行初始化,
                字符为nil,整型为0, 逻辑值为false
              2.new和make在返回时也有不同,new返回的是*type,make返回的是type即引用
              3.new可以初始化任意的数据类型,而make只能初始化slice,map,chan这三种数据类型

基本的总结,以后学到还会补充,下一篇是引用类型slice&&map

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值