【新手易错点】golang中byte和rune

1 总体区别

在Golang中,byte和rune是两种不同类型的数据。简单来说,byte是一个8位的无符号整数类型,而rune则是一个32位的Unicode字符类型

  1. Byte:
    • 在Golang中,byte类型实际上是uint8的别名,它用来表示8位的无符号整数。通常用来存储ASCII字符以及二进制数据。
    • 可以通过以下方式声明byte类型变量:
      var b byte = 65
      
  2. Rune:
    • 在Golang中,rune类型实际上是int32的别名,用于表示Unicode字符。这是因为Unicode字符可能需要多个字节来表示,因此需要更多的存储空间。
    • 可以通过以下方式声明rune类型变量:
      var r rune = '文'
      

总的来说,byte用于表示单个字节的数据,而rune用于表示Unicode字符,可以更好地支持多语言和复杂的文本处理。

2 常见错误

笔者在刷leecode在处理纯ASCII字符的时候,常常分不清什么时候用rune,什么时候用byte。便用一下代码总结。
如以下题目:
请添加图片描述

// 在不考虑效率的情况下,只是为了单纯的说明什么时候用rune,什么时候用byte
func isAnagram(s, t string) bool {if len(s) != len(t) {return false}sByte := []byte(s)// sByte 是byte类型的数组,所以数组内每个子元素都是byte类型的sMap := make(map[byte]int)for _, b := range sByte {sMap[b]++}// 而t是string类型,所以此时返回的b其实是Unicode字符,可以理解为rune类型// 所以此时b就需要类型转换为bytefor _, b := range t {if sMap[byte(b)] <= 0 {return false}sMap[byte(b)]--}return true
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/487804.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity Shader ASE基础效果思路与代码(二):边缘光、扰动火焰

Unity Shader ASE基础效果思路与代码(二)&#xff1a;边缘光、扰动火焰 这里写目录标题 Unity Shader ASE基础效果思路与代码(二)&#xff1a;边缘光、扰动火焰边缘光效果展示&#xff1a;代码与思路&#xff1a; 扰动火焰效果展示&#xff1a;代码与思路&#xff1a; 边缘光 …

【初中生讲机器学习】11. 回归算法中常用的模型评价指标有哪些?here!

创建时间&#xff1a;2024-02-19 最后编辑时间&#xff1a;2024-02-23 作者&#xff1a;Geeker_LStar 你好呀~这里是 Geeker_LStar 的人工智能学习专栏&#xff0c;很高兴遇见你~ 我是 Geeker_LStar&#xff0c;一名初三学生&#xff0c;热爱计算机和数学&#xff0c;我们一起加…

RabbitMQ(一):消息队列MQ

目录 1 消息队列MQ1.1 MQ简介1、什么是MQ2、MQ的优势流量削峰应用解耦异常处理数据分发分布式事务 3、消息中间件的弊端4、常用的MQ 1.2 MQ中几个基本概念1.3 MQ的通信模式1.4 消息的发布策略1.5 常用消息中间件协议1、AMQP协议2、MQTT协议3、OpenMessage协议4、kafaka协议 1 消…

可在线免费使用的5款ChatGPT平替网站!

可在线免费使用的5款ChatGPT平替网站&#xff01; 渗透智能 ShirtAI 是一款全方位AI产品&#xff0c;集成问答绘画导图等功能!支持联网功能、 支持上下文对话、支持模糊匹配自定义回复消息、 支持注册配置自定义赠送额度、支持生成专属邀请码邀请用户双方共同获得额度。 https…

(HAL)STM32F103C8T6——RC522与主机进行SPI通信(RFID门禁系统入门必备)

目录 一、MFRC522简介 二、接线 三、存储结构说明 四、代码解析 1、rc522.h 2、rc522.c 3、spi.h 4、spi.c 5、main.c 一、MFRC522简介 店家提供的资料&#xff1a; 链接&#xff1a; 百度网盘 请输入提取码 提取码&#xff1a;su3m 简言之&#xff0c;MFRCC522是基于…

命令绕过 [安洵杯 2019]easy_web1

打开题目 打开题目在URL处看到cmd&#xff0c;本能的直接用系统命令ls 发现被过滤了。又注意到imgTXpVek5UTTFNbVUzTURabE5qYz0似乎是一串base64 拿去base64解码 再hex解码一次得到555.png 再将其hex加密 base64加密 反向推出index.php的payload:?imgTmprMlJUWTBOalUzT0RK…

snmp协议开通教程

目录 一、什么是snmp协议&#xff1f; 二、snmp协议可以用来干什么&#xff1f; 三、snmp协议的开通 1、snmpv2协议开通 2、snmpv3协议开通 一、什么是snmp协议&#xff1f; SNMP&#xff08;Simple Network Management Protocol&#xff09;是一种用于网络管理的标准协议&a…

【扩散模型】【网络结构探索】神经网络扩散:Neural Network Diffusion(论文解读)

项目地址&#xff1a;https://github.com/NUS-HPC-AI-Lab/Neural-Network-Diffusion 文章目录 摘要一、前言二、Nerual Network Diffusion &#xff08;神经网络扩散&#xff09;2.1扩散模型&#xff08;预备知识&#xff09;2.2 总览2.3 参数自动编码器2.4 参数生成 三、实验3…

汇编语言movs指令学习

字符串传送指令(Move String Instruction) movs 该指令是把指针DS:SI所指向的字节、字或双字传送给指针ES:DI所指向内存单元&#xff0c;并根据标志位DF对寄存器DI和SI作相应增减。该指令的执行不影响任何标志位。 记不清这指令是8086就有的&#xff0c;还是386以后新加的&…

单片机tsm32城市环境污染监测与实现

国内经济增速的持续保持不但加快了城市化建设的步伐&#xff0c;同时也使得更多的人口聚集到大城市中求发展&#xff0c;大量的人口对衣食住行等方面的需求使得这些城市环境的污染问题逐渐加剧。当前各级政府虽然对城市环境污染问题越来越重视&#xff0c;但是因缺乏监测手段而…

美格智能联合罗德与施瓦茨完成5G RedCap模组SRM813Q验证,推动5G轻量化全面商用

全球5G发展进入下半场&#xff0c;5G RedCap以其低成本、低功耗的特性成为行业焦点。近日&#xff0c;中国移动携手合作伙伴率先完成全球最大规模、最全场景、最全产业的RedCap现网规模试验&#xff0c;推动首批芯片、终端具备商用条件&#xff0c;RedCap端到端产业已全面达到商…

Linux之ACL权限chmod命令

一. chmod命令 chmod命令来自英文词组change mode的缩写&#xff0c;其功能是改变文件或目录权限的命令。默认只有文件的所有者和管理员可以设置文件权限&#xff0c;普通用户只能管理自己文件的权限属性。 设置权限时可以使用数字法&#xff0c;亦可使用字母表达式&#xff0…