当前位置: 首页 > web >正文

go中len和sizeof区别

在Go语言中,lensizeof的主要区别在于它们的功能和使用场景。

len函数

len函数是Go语言中的一个内置函数,用于获取数组、切片、字符串、映射和通道等数据类型的长度或元素个数。具体来说:

  • 数组和切片‌:len(arr)返回数组或切片的长度。
  • 字符串‌:len(s)返回字符串的长度,即其中的字符数。
  • 映射(map)‌:len(m)返回映射中键值对的数量。
  • 通道(channel)‌:len(ch)返回通道中待处理元素的数量。

sizeof函数

在Go语言中,并没有直接的sizeof函数,但可以通过unsafe包中的Sizeof函数来获取变量或数据结构的大小。unsafe.Sizeof函数返回的是变量或数据结构占用的内存大小,而不是实际使用的大小。具体特点包括:

  • 内存占用‌:返回的是变量或数据结构占用的内存大小,包括对齐等额外的内存空间。
  • 静态计算‌:unsafe.Sizeof函数在编译期就进行求值,而不是在运行时。

示例代码

var arr = ‌:ml-citation{ref="1" data="citationList"}int{1, 2, 3, 4, 5, 6}
fmt.Println("数组长度:", len(arr)) // 输出: 6
fmt.Println("数组大小:", unsafe.Sizeof(arr)) // 输出: 48(假设int类型占用8字节)

在这个例子中,len(arr)返回数组的长度(6),而unsafe.Sizeof(arr)返回数组占用的总内存大小(假设int类型占用8字节,6个int类型元素共48字节)。

http://www.xdnf.cn/news/8226.html

相关文章:

  • 初学c语言18(自定义类型:结构体)
  • 【DAY26】函数专题1:函数定义与参数
  • 供应链管理:联合国/我国 41个产业/工业大类包括什么/代表公司
  • 【25软考网工】第七章(4)DHCP、DNS
  • 深入理解 BFC:网页布局的关键机制
  • 其他有关Oracle BUFFER CACHE的优化思路
  • Java Spring Boot 集成 Redis 存储 Session:对象修改与 Redis 值更新
  • 2025年排名前五的费控管理软件
  • 封装红黑树实现mymap和myset
  • 密码分析学:从理论框架到实战攻防的全维度解析
  • 编程日志5.17
  • AttributeError: module ‘cv2.dnn‘ has no attribute ‘DictValue‘错误解决方法
  • Redis 的速度为什么这么快
  • Windows命令实用工具——tcping 命令工具安装及基础使用
  • 帕鲁杯证书在线生成-仅供娱乐
  • 车载网关设计原则 ---- 透明性与诊断可追溯性
  • 第十八章 I2C通信测试
  • 解决vscode在任务栏显示白色图标
  • 【2025-05-22】XXL-JOB 的 8810 端口添加到 CentOS 6.5 的防火墙白名单
  • 【风控】模型算法区分度指标KS
  • 产品经理面经(三)
  • 自学嵌入式 day22 -数据结构 栈 队列
  • sql存储过程
  • 嵌入式自学第二十六天(5.22)
  • 【Pandas】pandas DataFrame sem
  • 代码随想录算法训练营第60期第四十四天打卡
  • 在 Windows 的 Visual Studio 2017 中编译 ncnn Debug 版本
  • Eigen矩阵存储顺序以及转换
  • Ajax01-基础
  • AndroidStudio 2024.2.2发布apk时候备份mapping文件kts版本