首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >2023学习日志

2023学习日志

原创
作者头像
TomoriNao
发布于 2023-07-06 03:25:16
发布于 2023-07-06 03:25:16
1760
举报
文章被收录于专栏:每月技术成长每月技术成长

rust

常见集合

Vector储存列表

此处的Vector类似与C++STL库中的Vecotor,是对数组进行封装后的数据结构

声明Vector变量

可以通过两种方式声明Vector类型的变量

  • Vec::new()函数
  • vec!宏

示例:

代码语言:rust
AI代码解释
复制
// Vec::new()函数
let v: Vec<i32> = Vec::new();
// vec!宏
let v = vec![3,4,5];

更新Vector

可以使用push方法来向Vector添加元素

读取Vector

可以使用get方法或下标索引来访问Vector中的元素。

推荐使用get方法来访问Vector中的元素,因为直接访问下标可能会产生越界的错误,而get方法在越界时会返回Nono类型变量。

String

声明String变量

可以通过三种方式声明String变量:

  • String::new() 函数
  • to_string方法
  • String::from()函数

示例:

代码语言:rust
AI代码解释
复制
//String::new()函数新建空String变量
let mut m = String::new();
//to_string方法获得String变量
let s = "test".to_string();
//String::from()函数获得String变量
let str_ = String::from("hello");

更新String变量

更新String变量有三种方式:

  • 通过push_strpush方法追加字符串
  • 通过运算符或format!宏拼接字符串

通过运算符拼接字符串将会导致变量所有权的转移

读取String中元素

由于rust底层以字节形式存储String,因此无法直接通过索引来访问String中的元素, 可以先通过chars方法将String变量转换为char类型,再进行访问遍历等操作。

示例:

代码语言:rust
AI代码解释
复制
for c in "abcd".chars(){
    println!("{c}");
}

Hash Map

Hash Map一种键值对集合,可以通过get方法,根据key来获取value的值。也可通过for-in循环遍历整个Hash Map。

所有权的改变

对于实现了copy trait的类型,其值可以拷贝进入Hash Map,而对于String这样拥有所有权的值,变量的所有权将会转移到Hash

Map中。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Rust学习笔记之集合
Rust 标准库中包含一系列被称为 集合collections的非常有用的数据结构。大部分其他数据类型都代表一个特定的值,不过集合可以包含多个值。「不同于内建的数组和元组类型,这些集合指向的数据是储存在堆上的,这意味着数据的数量不必在编译时就已知,并且还可以随着程序的运行增长或缩小」。
前端柒八九
2023/03/23
7190
Rust学习笔记之集合
Rust常见集合
Rust 标准库中包含一系列被称为「集合」(collections)的非常有用的数据结构。不同于内建的数组和元组类型,这些集合指向的数据是储存在堆上的,这意味着数据的数量不必在编译时就已知,并且还可以随着程序的运行增长或缩小。
hotarugali
2022/03/18
9280
Rust入坑指南:鳞次栉比
很久没有挖Rust的坑啦,今天来挖一些排列整齐的坑。没错,就是要介绍一些集合类型的数据类型。“鳞次栉比”这个标题是不是显得很有文化?
Jackeyzhe
2020/03/11
7820
Rust入坑指南:鳞次栉比
【Rust】008-常用集合
在Java中,List接口是一个非常常用的数据结构接口,它定义了一组可以用于操作有序集合的方法。ArrayList是List接口的一个常见实现,提供了动态数组的功能。通过ArrayList,我们可以方便地进行元素的添加、删除和访问。
訾博ZiBo
2025/01/06
1360
【Rust学习】18_常见集合_String
新 Rust 开发者通常会因三个原因而在字符串上遇到困难:Rust 倾向于暴露可能的错误、字符串作为一种数据结构比许多程序员认为的要复杂,以及 UTF-8。这些因素结合在一起,可能会让你在从其他编程语言转换过来时觉得困难。
思索
2024/11/26
1680
【Rust学习】18_常见集合_String
Rust语法入门
Rust 是一种系统级编程语言,它的设计目标是提供高性能、安全性和并发性。Rust 的主要优势包括:
码客说
2023/04/17
1.4K0
rust字符串
诸位在入门rust的时候,要认真,因为字符串类型在rust中有好几种,一不小心就搞混了类型,导致代码编译报错。好在有强大的rust-analyzer和vscode帮助我们。我们直接通过一段代码来开始认识rust的字符串类型。
zy010101
2023/01/13
9080
rust字符串
rust的vector和hashmap
在大多数语言中都会提供动态数组这样基础的数据结构。rust也不例外。动态数组允许我们存储多个值,这些值在内存中一个紧挨着另一个排列。动态数组中只能存储相同类型的元素。
zy010101
2023/03/15
5610
rust的vector和hashmap
Rustilings 练习笔记
Rust有类型检查,执行运算或者赋值时候要遵循类型的规律,但是Rust可以重新定义同名变量,变量的类型可以发生改变
用户7267083
2023/03/20
1.5K0
一网打尽 Rust 语法
大家好,我是「柒八九」。一个「专注于前端开发技术/Rust及AI应用知识分享」的Coder
前端柒八九
2024/04/30
2160
一网打尽 Rust 语法
【Rust学习】17_常见集合_向量
Rust的标准库包含许多非常有用的数据结构,称为集合。大多数其他数据类型代表一个特定的值,但集合可以包含多个值。与内置的数组和元组类型不同,这些集合指向的数据存储在堆上,这意味着数据的数量不需要在编译时知道,并且可以在程序运行时增长或缩小。每种集合都有不同的能力和成本,选择适合当前情况的集合是您会随着时间推移而发展的一项技能。在本章中,我们将讨论 Rust 程序中经常使用的三个集合:
思索
2024/11/22
1740
【Rust学习】17_常见集合_向量
第4章 | 移动
这里遵循了社区的习惯译法“移动”,学过 C++ 的读者可能比较熟悉了;对使用其他语言的读者来说,要特别注意这里的“移动”在语义上并非像真实生活中那样简单地挪动物品的位置,而是涉及一个非常重要的概念——所有权。在这个语义下,你可以把它理解为将值从一个所有者移交给另一个所有者,这里的重点是对所有权的转移,而所有权是 Rust 的核心概念。——译者注
草帽lufei
2024/05/08
4050
第4章 | 移动
一起学Rust-变量及类型
在Rust语言中,所有的变量默认均是不可变变量,不可变变量就是当变量完成值当初始化后不能再次重新赋值的变量。
江湖安得便相忘
2019/08/21
1.1K0
一起学Rust-变量及类型
Rustlings练习-vec、String、hashmap、error_handling
用直接声明是一个[i32,n]的类型,用vec!()宏可以声明一个Vec<T>类型的变量.
用户7267083
2022/12/08
8630
rustling练习II–primitive type、move_semantic
只用完成一行的代码就好了.不知道这题的意义是什么23333 就是写成let is_evening = false;就好了
用户7267083
2022/12/08
4680
rustling练习II–primitive type、move_semantic
听GPT 讲Rust源代码--src/tools(26)
在Rust源代码中,iter_out_of_bounds.rs文件是Clippy lints库的一部分,该库用于静态代码分析,用于检测Rust代码中的潜在问题和错误。iter_out_of_bounds.rs文件中包含了一个名为iter_out_of_bounds的lint规则,用于检查代码中可能会导致迭代器越界访问的问题。
fliter
2024/01/13
1950
听GPT 讲Rust源代码--src/tools(26)
听GPT 讲Rust源代码--library/alloc
在Rust源代码中,rust/library/alloc/benches/slice.rs文件的作用是对&[T]类型(切片类型)进行性能基准测试。该文件包含了对切片类型的一系列操作的基准测试,例如切片迭代、切片排序、切片的iter和into_iter方法等。
fliter
2024/02/26
2360
听GPT 讲Rust源代码--library/alloc
Rust中的一些标准库
Box 允许将一个值放在堆上而不是栈上,留在栈上的则是指向堆数据的指针。Box 是一个指向堆的智能指针,当一个 Box 超出作用域时,它的析构函数被调用,内部对象被销毁,堆上的内存被释放。
端碗吹水
2022/06/05
9960
Rust中的一些标准库
整理了70道C语言与C++常见问答题
变量的定义为变量分配地址和存储空间, 变量的声明不分配地址。一个变量可以在多个地方声明, 但是只在一个地方定义。 加入extern 修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分定义。
C语言与CPP编程
2021/02/07
3.3K0
整理了70道C语言与C++常见问答题
从字符串来浅谈Rust内存模型
总算是把期末考最忙的一阵子熬过去了,来整理整理快发霉的博客。这篇文章躺在草稿箱快有一个学期了,期间我也对Rust有了更深的认识,于是正好改写作为假期的第一篇文章。
KAAAsS
2022/01/14
1.1K0
从字符串来浅谈Rust内存模型
相关推荐
Rust学习笔记之集合
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档