首页 > 其他分享 >浅谈切片操作

浅谈切片操作

时间:2023-04-12 09:22:28浏览次数:35  
标签:浅谈 切片 let 操作 右开 左闭 rust String

引言

在很多语言中都有切片这个操作,比如python,rust,go等等,而且大多数都是左闭右开的索引方式。

以rust为例子,我创建了一个String变量,以及它的两个字符串切片。

在rust中,切片就是对 String 类型中某一部分的引用

fn main()
{
  let s = String :: from ("Hello World");
  let hello = &s[0..5];
  let world = &s[6..11];
  println!("{},{}",hello,world);
}

为什么不设计成左闭右闭的呢?

我以前学切片的时候,并不理解这种左闭右开的做法,当时觉得左闭右闭岂不是更加好吗。今天学习了rust切片之后,有了更好的理解。

前面说过,在rust中,切片就是对 String类型中某一部分的引用

具体的存储方式如下图所示。

1

如图,字符串切片的存储包含两个部分指针+长度,而这个长度,正好可以用切片中的[开始索引,结束索引]直接相减得到,于是就非常方便。

所以,用左闭右开的方式。

标签:浅谈,切片,let,操作,右开,左闭,rust,String
From: https://www.cnblogs.com/jye159X/p/17308636.html

相关文章

  • PHP连接MYSQL数据库参数设置机器增删查改操作
     1.param.php <?phpsession_start();if(!$_SESSION["user"]->poststuno)exit('你的工号不正确');if($_SESSION["user"]->juese=='001')exit('未知错误,请联系管理员0001');$db_host_main="192.168.*.*";//主数......
  • 操作推荐-git工作流
    操作推荐-git工作流sourcetree环境sourcetree是一款可视化的版本管理软件可以实现版本的管理和发布同样,也支持git工作流的使用创建git工作流在main或者master主分支上,点击git工作流会自动创建develop分支之所以需要独立出一个分支,是为了保证主分支的稳定不同的发展分......
  • 1-1数据操作
    数据操作为了能够完成各种数据操作,我们需要某种方法来存储和操作数据。通常,我们需要做两件重要的事:(1)获取数据;(2)将数据读入计算机后对其进行处理。如果没有某种方法来存储数据,那么获取数据是没有意义的。​ n维数组,也称为张量(tensor)。入门张量表示一个由数值组成的数组,这个数......
  • 简单域渗透操作
    信息收集netuser/domainnetgroup/domainnetgroup"DomainAdmins"/domain#这种方法没办法收集到组的嵌套关系#可以使用PowerViewImport-Module.\PowerView.ps1Get-NetdomainGet-NetUser|selectcn#思路是找高权限用户,找哪一台主机有该用户的登录会话,用普......
  • sqlalchemy快速插入数据,scoped_session线程安全,加载类上的装饰器,基本增删改查,django中
    今日内容sqlalchemy快速插入数据sqlalchemy是什么orm框架,跟其他web框架没有必然联系,可以独立使用安装,快速使用,执行原生sql创建表和删除表不能创建数据库不能修改字段(增加,删除)使用orm插入第一步:生成engine对象engine=create_engine("mysql+pymysql://[email protected].......
  • Linux操作系统基础的常用命令
    1,Linux简介Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机。1.1Linux介绍Linux出现于1991年,是由芬兰赫尔辛基大学学生LinusTorvalds和后来加入的众多爱好者......
  • Linux操作系统进程的状态和转换(五态模型)
    1、进程的状态和装换1.1进程的三态模型按进程在执行过程中的不同情况至少要定义三种状态:运行(running)态:进程占有处理器正在运行的状态。进程已获得CPU,其程序正在执行。在单处理机系统中,只有一个进程处于执行状态;在多处理机系统中,则有多个进程处于执行状态。就绪(ready)态:进程具......
  • C#图片添加水印操作类
    C#图片添加水印操作类原文链接:https://blog.csdn.net/gongquan2008/article/details/127914150usingSystem;usingSystem.Drawing;usingSystem.Drawing.Drawing2D;usingSystem.Drawing.Imaging;usingSystem.Web;usingSystem.IO;usingSystem.Web.UI;usingSystem.Xml;......
  • 701. 二叉搜索树中的插入操作
    给定二叉搜索树(BST)的根节点root和要插入树中的值value,将值插入二叉搜索树。返回插入后二叉搜索树的根节点。输入数据保证,新值和原始二叉搜索树中的任意节点值都不同。注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。你可以返回任意有效的结果......
  • 浅谈古今中外 APS 发展史
    APS的发展建立在线性规划、计算机科学、人工智能、决策支持系统、工业工程、物流管理、管理科学、约束理论、运筹学、生产运作管理等研究成果基础上,其最早出现于19世纪与20世纪之交,早期仅仅只是一张可以让人们直观看到事件进程并进行交互式更新的时间表——甘特图,当时人们主......