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

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字节)。

相关文章:

  • PT8P2104触控型8Bit MCU
  • Linux Systemd 管理java服务
  • 打卡第二十五天:元组和OS模块
  • 深搜题(如何找到进入下一层深搜的条件)
  • Android 网络全栈攻略(三)—— 从三方库原理来看 HTTP
  • 【Java高阶面经:数据库篇】17、分库分表分页查询优化:告别慢查询与内存爆炸
  • 并发编程之常用原子类
  • 蓝桥杯 10. 安全序列
  • yolo剪枝的几种方法
  • 链表day4
  • RT-Thread源码阅读(1)——基本框架
  • 阿里云 Serverless 助力海牙湾构建弹性、高效、智能的 AI 数字化平台
  • 配置gem5环境:Dockerfile使用
  • SQL的RAND用法和指定生成随机数的范围
  • labview实现两路波形图数据采集
  • DeepSeek快速搭建个人网页
  • 搭建在线教育系统的完整流程:源码选择、功能集成与上线部署指南
  • 人形机器人,进入第一阶段概念设计和起泡沫的阶段
  • 系统性能分析基本概念(4) : 何时停止性能分析
  • 2025-05-22 学习记录--Python-函数
  • 百度网站建设公司/指数基金定投技巧
  • 提供常州网站建设/没被屏蔽的国外新闻网站
  • vs2017网站开发选择调试服务/外贸网站模板
  • 网页设计与制作教程电/什么叫seo
  • 佛山做网站建设公司/uc推广登录入口
  • 西安学校网站建设哪家专业/百度问答怎么赚钱