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

go语言 rune 类型

ASCII 码只需要 7 bit 就能完整地表示,但只能表示英文字母在内的 128 个字符,为了表示世界上大部分的文字系统,发明了 Unicode ,它是 ASCII 的超集,包含世界上书写系统中存在的所有字符,并且为每个代码分配一个标准编号(称为 Unicode CodePoint),在 go 语言中称为 rune,是 int32 的别名

go 语言中 ,字符串的底层表示是 byte(8 bit) 序列,而不是 rune( 32 bit )序列

func main() {str := "nihao"length := len(str)fmt.Println(length)for i, _ := range str {fmt.Println(reflect.TypeOf(str[i]))}
}

运行结果为:

但是,如果使用 for range 遍历字符串取值的时候,得到的 value 类型为 rune 类型(3字符),也就是 int32 类型,对应 Unicode 字符型

func main() {str := "nihao"length := len(str)fmt.Println(length)for _, v := range str {fmt.Println(reflect.TypeOf(v))}
}

 运行结果:


修改字符串

所以在go语言中修改字符串的时候,针对不同的情况来进行编写:

当字符串中有中文字符:

此时需要将字符串转换为 []rune 切片进行操作


func main() {str := "你好"fmt.Printf("修改前:%s", str)fmt.Println()strr := []rune(str)strr[0] = '我'fmt.Printf("修改后:%s", string(strr))
}

结果:

 如果使用 []byte 的话编译会不通过

当字符串中只有英文时:

此时使用 []rune 或者 []byte 都可以,但是一般会使用 []byte:

func main() {str := "nihao"fmt.Printf("修改前:%s", str)fmt.Println()strr := []rune(str)strr[0] = 'w'fmt.Printf("[]rune修改后:%s", string(strr))fmt.Println()strrr := []byte(str)strrr[0] = 'w'fmt.Printf("[]byte修改后:%s", string(strr))fmt.Println()
}

运行结果:

相关文章:

go语言 rune 类型

ASCII 码只需要 7 bit 就能完整地表示,但只能表示英文字母在内的 128 个字符,为了表示世界上大部分的文字系统,发明了 Unicode ,它是 ASCII 的超集,包含世界上书写系统中存在的所有字符,并且为每个代码分配…...

DS18B20温度传感器

DS18B20简介 DS18B20 是由 DALLAS 半导体公司推出的一种的“一线总线(单总线)”接口的温度传感器 这种一线总线就是 三线制 SPI DS18B20的 配置寄存器: TM 是测试位,出厂设置就被设置为0,不需要改动, R1、R…...

LeetCode322. 零钱兑换

322. 零钱兑换 文章目录 [322. 零钱兑换](https://leetcode.cn/problems/coin-change/)一、题目二、题解方法一:完全背包二维数组方法二:一维数组 三、注意 一、题目 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 a…...

AUTOSAR扫盲贴--不是黑神话【基本概念和方法论】

猴子纵有72搬变化,也跳不出如来的手掌 目录 1. 引言 2. AUTOSAR的基本概念 2.1. AUTOSAR的架构和组成部分 2.2. AUTOSAR的规范和...

python抠图(去水印)开源库lama-cleaner入门应用实践

1. 关于 Lama Cleaner Lama Cleaner 是由 SOTA AI 模型提供支持的免费开源图像修复工具。可以从图片中移除任何不需要的物体、缺陷和人,或者擦除并替换(powered by stable diffusion)图片上的任何东西。 特征: 完全免费开源&am…...

Nginx可视化管理工具结合cpolar实现远程访问内网服务

前言 Nginx Proxy Manager 是一个开源的反向代理工具,不需要了解太多 Nginx 或 Letsencrypt 的相关知识,即可快速将你的服务暴露到外部环境,并且支持 SSL 配置。基于 Tabler 的美观且安全的管理界面,无需了解 Nginx 即可轻松创建转发域、重定…...

CCC数字钥匙设计【BLE】 --建立安全测距

1、建立安全测距Establish Secure Ranging 车端总共有三种建立安全测距的方式,具体如下: 1) Optimal Flow 2) Sub-Optimal Flow 3) Ranging Recovery Flow 为了确定建立安全测距需要执行哪条流程,车辆需要进行以下流程选择。当车辆和设备…...

Ubuntu22.04 Opencv4.5.1 CPU和GPU编译攻略,Opencv CPU和GPU编译保姆教程 亲自测试。

1、安装opencv依赖 安装时最好更换一下源。 sudo apt-get -y update sudo apt-get -y install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get -y install libgtk-3-dev gfortran openexr libatlas-base-dev python3-dev pyt…...

常识判断 --- 党史

目录 中共1~3大 例题 国民党 例题 中共4~5大 例题 中共起义~会议 例题 中共六届六中全会(1938年9月) 中共七大(1945年4月) 例题 中共七届二中全会 例题 中共8~10大 中共11~12届全会 例题 中共13~14大 …...

Rust 基础再理解

Rust堆栈 Rust中各种类型的值默认都存储在栈中,除非显式地使用Box::new()将它们存放在堆上,但数据要存放在栈中,要求其数据类型的大小已知。对于静态大小的类型,可直接存储在栈上,如裸指针、布尔、字符、整数浮点数&a…...

Opencv cuda版本在ubuntu22.04中安装办法,解决Could NOT find CUDNN的办法

文章目录 概要下载cuda的runfile版本配置环境变量官网下载cudann安装Opencv依赖包下载opencv和opencv_contrib并解压准备编译安装anaconda环境执行编译命令安装OpenCV并检查是否安装成功 概要 解决以下安装问题: -- Could NOT find CUDNN: Found unsuitable versi…...

全网首发YOLOv8暴力涨点:Gold-YOLO,遥遥领先,超越所有YOLO | 华为诺亚NeurIPS23

💡💡💡本文独家改进:提出了全新的信息聚集-分发(Gather-and-Distribute Mechanism)GD机制,Gold-YOLO,替换yolov8 head部分 实现暴力涨点 Gold-YOLO | 亲测在多个数据集能够实现大幅涨点 💡💡💡Yolov8魔术师,独家首发创新(原创),适用于Yolov5、Yolov7、…...

BD就业复习第四天

1. 布隆过滤器怎么实现去重 布隆过滤器是一种用于快速检查一个元素是否可能存在于一个大集合中的数据结构,但它并不适用于精确去重。因为布隆过滤器具有一定的误判率(可能会将不存在的元素误判为存在),所以不能确保完全的去重。但…...

数据结构 | 树

树 树是n(n>0)个结点的有限集。当n 0时,称为空树。在任意一棵非空树中应满足: 有且仅有一个特定的称为根的结点。当n>1时,其余节点可分为m(m>0)个互不相交的有限集T1,T2,…,Tm&#…...

Android11 适配

一、修改targetSdkVersion为30 将build.gradle的目标版本targetSdkVersion修改为30(Android 11) targetSdkVersion 30Android11的改变改变主要影响以Adnroid11 为目标版本的应用(targetSdkVersion>30才有影响),和所…...

UML基础与应用之对象图

什么是对象图? 对象图表示一组对象及它们之间的关系,是某一时刻系统详细信息的快照,描述系统交互的静态图形,它由协作的对象组成,但不包含在对象之间传递的任何消息。因为对象是类的实例化,所以说某一时刻…...

英码科技精彩亮相火爆的IOTE 2023,多面赋能AIoT产业发展!

9月20日至22日,在这金秋飒爽的季节,为期三天的IOTE 2023第二十届国际物联网展深圳站在深圳国际会展中心盛大举行。英码科技精彩亮相本届展会,并在同期举办的AIoT视觉物联产业生态大会发表了主题演讲,与生态伙伴们共同探讨AIoT产业…...

400G QSFP-DD FR4 与 400G QSFP-DD FR8光模块:哪个更适合您的网络需求?

QSFP-DD 光模块随着光通信市场规模的不断增长已成为400G市场中客户需求量最高的产品。其中400G QSFP-DD FR4和400G QSFP-DD FR8光模块都是针对波分中距离传输(2km)的解决方案,它们之间有什么不同?应该如何选择应用?飞速…...

【Android】Kotlin 中的 apply、let、with、also、run 到底有啥区别?

一、图示 二、apply apply 函数接收一个对象并返回该对象本身。它允许您在对象上执行一些操作&#xff0c;同时仍然返回原始对象。 这个函数的语法为&#xff1a; fun <T> T.apply(block: T.() -> Unit): T 其中&#xff0c;T 是对象的类型&#xff0c;block 是一…...

设计模式——职责链模式

职责链模式 职责链模式职责链模式解决什么问题&#xff1f;职责链模式实现 职责链模式 使多个对象都有机会处理请求&#xff0c;从而避免请求的发送者和接收者之间的耦合关系。将这个对象练成一条链&#xff0c;并沿着这条链传递该请求&#xff0c;知道有一个对象处理它为止 …...

【研报280】汽车轻量化材料研究报告:改性塑料的应用趋势

本报告提供限时下载&#xff0c;请查看文后提示以下仅为报告部分内容&#xff1a;摘要&#xff1a;政策与新能源汽车需求双重驱动下&#xff0c;汽车轻量化成为行业核心发展方向&#xff0c;2026年国内将实施新的乘用车碳排放国标&#xff0c;叠加新能源汽车普遍重于燃油车&…...

基于朴素贝叶斯分类算法的收入预测:Python 数据挖掘项目实战

数据挖掘项目python--基于朴素贝叶斯分类算法的收入预测 项目流程&#xff1a;数据分析训练朴素贝叶斯分类器两个方案实现&#xff08;pycharmjupyter&#xff09; 包含内容&#xff1a;数据集代码&#xff08;pycharmjupyter&#xff09;文档在数据挖掘领域&#xff0c;预测任…...

洛谷P1678烦恼的高考志愿题解

一、题目理解输入&#xff1a;第一行、m所学校&#xff0c;n位学生第二行、m个预计录取分数第三行、n个学生估分成绩输出&#xff1a;最小不满意度之和二、解题思路其实这题就是简单的二分&#xff0c;对于我这种菜鸟来说&#xff0c;咱就用最简单最好理解的方式来写。1、首先观…...

综合布线入门技术培训ppt

综合布线是弱电项目中最基础的系统&#xff0c;也是最重要的系统之一。不少施工过程不是很楚&#xff0c;主要集中在两个问题&#xff1a;1、综合布线项目如何做&#xff1f;2、有哪些流程&#xff1f;本期我们通过一个培训ppt来详细总结下。来源&#xff1a;弱电行业网...

BililiveRecorder:专业直播内容保存解决方案

BililiveRecorder&#xff1a;专业直播内容保存解决方案 【免费下载链接】BililiveRecorder 录播姬 | mikufans 生放送录制 项目地址: https://gitcode.com/gh_mirrors/bi/BililiveRecorder 在数字内容快速迭代的时代&#xff0c;如何永久保存有价值的直播内容成为许多创…...

SMUDebugTool系统调试实战指南:从问题诊断到性能优化的进阶之路

SMUDebugTool系统调试实战指南&#xff1a;从问题诊断到性能优化的进阶之路 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: h…...

提升效率:用快马ai生成ubuntu一键自动化安装openclaw的脚本

最近在Ubuntu上安装OpenClaw时&#xff0c;发现手动操作既耗时又容易出错。经过一番摸索&#xff0c;我总结出一套自动化方案&#xff0c;用脚本把整个流程优化到了极致。这里分享下具体实现思路和效率提升的关键点。 环境检测与适配 脚本首先会检查Ubuntu版本和架构&#xff0…...

构筑可信电子签名签章体系,亲笔签助力黔江区公立医院改革与高质量发展

巍巍武陵山&#xff0c;滔滔阿蓬江&#xff0c;在渝东南这片热土上&#xff0c;一个关乎50余万群众健康福祉的数字变革正在发生。2022年&#xff0c;黔江区成为首批入选公立医院改革与高质量发展示范项目全国15个试点地区之一。从“看病难、看病远”的山区困境&#xff0c;到“…...

3分钟免费搞定Axure RP中文汉化:完整语言包安装指南

3分钟免费搞定Axure RP中文汉化&#xff1a;完整语言包安装指南 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的…...

终极指南:如何用Python SDK快速集成飞书开放平台API

终极指南&#xff1a;如何用Python SDK快速集成飞书开放平台API 【免费下载链接】oapi-sdk-python Larksuite development interface SDK 项目地址: https://gitcode.com/gh_mirrors/oa/oapi-sdk-python 想要在Python应用中快速集成飞书开放平台的强大功能&#xff0c;却…...