len函数是Go语言中的内置函数,因此,在Go程序中可以直接调用,len()函数的定义如下:

func len(V Type) int
复制代码

其作用是用于计算数组(包括数组指针)、切片(slice)、map、channel、字符串等数据类型的长度,注意,结构休(struct)、整型布尔等不能作为参数传给len函数。

  1. 数组或数组指针:返回元素个数

  2. map和slice: 元素个数

  3. channel:通道中未读的元素个数

  4. 字符串:字节数,并非字符串的字符数

  5. 当V的值为nil值,len返回0


sl := make([]int,0)
sl = nil
if sl == nil{fmt.Println(len(sl)) //当slice类型为nil时,输出0
}s := "欢迎学习Go的len()函数"//14个字符fmt.Println(len(s))//输入28复制代码

在处理字符串时,经常需要知道字符串的字符数,但len()只计算字符串字节数,因此我们可以自定义处理字符串个数的函数。

//rune是32位的int别外,可以代表一个unicode字符,因此,通过将字符串将成rune类型的切片,切片元素个数代表字符个数
func count(str string) int {r := []rune(str)return len(r)
}s := "欢迎学习Go的len()函数"//14个字符fmt.Println(count(s))//14fmt.Println(len(s))//28复制代码

Golang学习笔记(十七):len函数相关推荐

  1. golang学习笔记(基础篇)

    LCY~~Golang学习笔记 一.Go语言开发环境 ##安装Go开发包以及VsCode Go开发包与vscode配置安装教程网址:https://www.liwenzhou.com/posts/Go ...

  2. 118云原生编程语言Golang学习笔记

    Golang学习笔记 文章目录 1.Go简介 1.1 简介 1.2 设计初衷 1.3 Golang vs Java 1.4 应用领域 1.5 用go语言的公司 2.Go下载和安装 2.1 开发工具 2 ...

  3. golang学习笔记(五):数组的定义和使用

    golang 学习笔记 数组定义 数组是一系列相同数据类型在内存中有序存储的数据集合 var 数组名 [元素个数]数据类型//定义了10个整型变量的数组元素var arr [10]int//通过下标找 ...

  4. windows内核开发学习笔记十七:IRP 和 IO_STACK_LOCATION 的交互

    windows内核开发学习笔记十七:IRP 和 IO_STACK_LOCATION 的交互 前面两篇学习笔记分别介绍了IRP和IO_STACK_LOCATION,整个设备栈来处理这个IRP,但是每个设 ...

  5. golang学习笔记(十六):多态的实现

    golang 学习笔记 多态实现 package main import "fmt"//先定义接口 在根据接口实现功能 type Humaner1 interface {//方法 ...

  6. Golang学习笔记之GORM基础使用(二)

    本文章主要学习GORM的增删查改.若还没有完成数据库和数据表的创建.定义模型以及数据库的连接请先学习本本专栏文章Golang学习笔记之GORM基础使用(一).本文为学习笔记,通过GORM官方中文文档和 ...

  7. golang学习笔记8 beego参数配置 打包linux命令

    golang学习笔记8 beego参数配置 打包linux命令 参数配置 - beego: 简约 & 强大并存的 Go 应用框架 https://beego.me/docs/mvc/contr ...

  8. golang学习笔记之--Go语言内建容器

    话接上文 <golang学习笔记之--Go语言基本语法> 今天继续记录学习笔记,今天的笔记主题是Go语言内建容器 如果各位童鞋想要获得下面的源码,请搜索gzh:隔壁王小猿,关注后回复&qu ...

  9. OpenCV学习笔记(十七)——K均值聚类

    当我们要预测的是一个离散值时,做的工作就是"分类".机器学习模型还可以将训练集中的数据划分为若干个组,每个组被称为一个"簇(cluster)".它的重要特点是在 ...

最新文章

  1. oracle数据库导入导出
  2. cordova flie文件目录_Cordova文件插件目录错误
  3. 11gOCP 1z0-052 :2013-09-11 MGR_ROLE role........................................................A66
  4. 【Http】一文备忘Http状态码(406,415,422)
  5. lsof命令_lsof命令的部分说明
  6. 两个一元多项式求和(新)(C语言)
  7. ubuntu 安装nvidia 驱动后无法进入桌面(循环进入登录界面 )
  8. 后端ajaxPost请求传给前端的显示乱码问题
  9. 【Java程序设计】数组
  10. bom sap 替代项目_SAP BOM替代物料讲解
  11. 7z解压crc错误_7-Zip - 常见问题解答(FAQ)
  12. .axf文件_Jlink使用技巧之单独下载HEX文件到单片机
  13. 网站技术分析报告之——开心网_转载
  14. KMeans算法的K值以及初始类簇中心点的选取
  15. 关于shell编程(3):awk中的sub和gsub
  16. Redis分布式缓存、秒杀
  17. python环境迁移:从联网笔记本到离线服务器
  18. 【8.21模拟赛T2.7221】[USACO21OPEN] Portals G【kruskal】
  19. 北京短视频运营哪里能学到
  20. js获取svg中g元素的宽高

热门文章

  1. Linux rzsz命令
  2. 电商放单平台网站|软件开发搭建的优势
  3. 使用技巧之修复Mac无法进入睡眠模式的问题
  4. lenovo thinkpad t460s tlp-stat 修复acpi_call
  5. 写论文 参考文献注意事项
  6. 暑期实习面试——笔金(找钢网),算法实习生
  7. 使用Jquery,Ajax+Struts+Spring+Ibatis写的一个无限级树,供大家参考一下
  8. MATLAB | 特殊绘图小合集(二) | 金字塔图、类桑基图、y轴分段填充折线图
  9. 如何通过数据管理辅助决策者_是决策者被现代数据栈所取代
  10. 【环境配置】Visual Studio Code 如何编写运行 C、C++ 程序?