Rust基本数据类型-切片

server/2024/10/20 20:47:04/

一、切片是什么,怎么用

1、切片是什么

切片并不是 Rust 独有的概念,在 Go 语言中就非常流行,它允许你引用集合部分连续的元素序列,而不是引用整个集合。

对于字符串而言,切片就是对 String 类型中某一部分的引用,它看起来像这样,记得是引用&

rust">let s = String::from("hello world");let hello = &s[0..5];//区间是左闭右开
let world = &s[6..11];

用图来看是这样
1111
但是需要注意的是,切片取索引下标的时候,要将索引放置正确的位置上,比如

rust">
// 修复代码中的错误
fn main() {let s = String::from("中国人");let a = &s[0..2];println!("{}",a);}
   Compiling world_hello v0.1.0 (/Users/guilinhuang/Desktop/RustProject/world_hello)Finished release [optimized] target(s) in 0.21sRunning `target/release/world_hello`
thread 'main' panicked at src/main.rs:5:13:
byte index 2 is not a char boundary; it is inside '中' (bytes 0..3) of `中国人`

这是因为在字符串类型中每个汉字占用三个字节,因此没有落在边界处,也就是连 中 字都取不完整,此时程序会直接崩溃退出,如果改成
&s[0…3],则可以正常通过编译。 因此,当你需要对字符串做切片索引操作时,需要格外小心这一点。

如何正确便利这种UTF-8字符串,给几个方法

rust">for c in "中国人".chars() {println!("{}", c);
}

在Rust中,如果是字符类型,一个字符占4个字节,要与字符串区分

rust">
fn main() {let arr: [char; 3] = ['中', '国', '人'];let slice = &arr[..2];assert!(std::mem::size_of_val(slice) == 8);
}

http://www.ppmy.cn/server/7707.html

相关文章

0 回归-海上风电出力预测

https://www.dcic-china.com/competitions/10098 分析一下:特征工程如何做。 时间特征: 小时、分钟、一个星期中的第几天、一个月中的第几天。这些可以作为周期特征的标识。比如周六周日的人流会有很大的波动,这些如果不告诉模型它是很难学习…

42岁TVB男艺人曾靠刘德华贴钱出道,苦熬10年终上位

张颕康在无线(TVB)电视打滚多年,近年在《逆天奇案》第一、二辑凭扎实演技为人留下印象。他还是圈中出名的「爱妻号」,日前在访问期间,张颕康三句不离多谢太太。 较年长的观众或会记得,张颕康初出道以「刘德…

分类神经网络2:ResNet模型复现

目录 ResNet网络架构 ResNet部分实现代码 ResNet网络架构 论文原址:https://arxiv.org/pdf/1512.03385.pdf 残差神经网络(ResNet)是由微软研究院的何恺明、张祥雨、任少卿、孙剑等人提出的,通过引入残差学习解决了深度网络训练中的退化问题&#xff…

STM32G431RBT6之LCD与LED配置

首先,配置时钟树,时钟树的配置在我的另外一篇博客里,这里不再赘述. LCD与LED具有共同的IO口,同时创建工程较好. 打开原理图,发现LED的IO口是PC8~PC15,还有一个容易看漏的PD2.LCD的IO口是PC0到PC15. 当然,看产品手册也可以知道,但是还是推荐大家看原理图. 打开cubumx,给PC0~PC…

otomegame游戏音频提取通用教程

otomegame游戏音频提取通用教程 文章目录 otomegame游戏音频提取通用教程一、otomegame游戏介绍二、游戏拆包与语料提取目标TTS语料积累最终目标: 三、游戏拆包简要介绍1,游戏资源提取关键词2,游戏拆包工具(1)游戏资源…

前端入门:HTML(CSS边框综合案例)

案例&#xff1a; 源代码&#xff1a; css-borders.html: <body> <div id"square"> </div> <br> <div id"triangle"> </div> <br> <div id"trapezium"> </div> <br> <div id…

Python自动化系列---Python基础

1. 什么是自动化测试 1&#xff09;代码&#xff1a;Python&#xff0c;Java 2&#xff09;工具&#xff1a;Jmeter&#xff0c;Robotframework—RF 3&#xff09;为什么写代码/做自动化&#xff1a;回归测试执行的&#xff08;自动化框架脚本&#xff09;–稳定老功能 2. Py…

DRF: 序列化器、View、APIView、GenericAPIView、Mixin、ViewSet、ModelViewSet的源码解析

前言&#xff1a;还没有整理&#xff0c;后续有时间再整理&#xff0c;目前只是个人思路&#xff0c;文章较乱。 注意路径匹配的“/” 我们的url里面加了“/”&#xff0c;但是用apifox等非浏览器的工具发起请求时没有加“/”&#xff0c;而且还不是get请求&#xff0c;那么这…