ICode9

精准搜索请尝试: 精确搜索
  • rust使用vec在遍历时删除元素2022-02-24 18:34:42

    rust使用vec在遍历时删除元素 需求: 工作中有一个地方需要用到在遍历时把不符合条件的元素删除掉, 比如一个vec中是原始数据是 vec![1,2,3,3,4,5] ,然后我要在遍历中把等于c的元素删除掉,目的是得到vec![1,2,4,5] 第一次错误尝试 由于最开始只知道移除元素用remove方法,所以最开始

  • rust stable和nightly版本共存2022-02-22 23:01:38

    我之前在网上学习使用rust编写操作系统,需要使用rust的版本是nightly,我安装的版本是stable版本,这里介绍一下如何快速切换到nightly版本 使用rustup查看已经安装版本 $ rustup toolchain list stable-x86_64-unknown-linux-gnu (default) 安装切换nightly版本 $ rustup default ni

  • rust 如何用单调时钟获取更精确的时间间隔2022-02-20 21:02:59

    Wall Clock vs Monotonic Clock (墙上时钟 vs 单调时钟) 墙上时钟指的是我们日常意义上的时间,正如墙上的时钟代表的时间一样。单调时钟指的是某个时间点后开始计算的时间,单纯意义上的代表的时间是没有意义的。 操作系统上相对应的提供了两套时间,分别对应墙上时钟和单调时钟,操作系

  • Rust——数组2022-02-20 18:31:33

    文章目录 特点声明,初始化常用方法 特点 长度固定,不能是变量元素类型一致 声明,初始化 声明,同时赋初值。 let a: [i32; 4] = [1, 2, 3, 4]; for b in a { print!("{}+", b); } //i32为元素类型,4为长度。 简写。 let a = [1, 2, 3, 4]; for b in a { print!("{}+", b); }

  • rust Cell 与 RefCell的区别2022-02-20 01:01:58

    Cell与RefCell 的相同点:绕开所有权的限制,实现内部可变性性 rust 的所有权规则: 只能由一个可变引用 允许存在多个不可变引用 fn modify(a: &mut i32) { *x = *x + 1; } fn main() { let a = 111; modify(&mut a); } 变量a定义成一个不可变的变量,不能用于modi

  • Rust语言——所有权2022-02-09 15:30:45

    Stack vs Heap(栈内存 vs 堆内存) Stack(后进先出,LIFO) Stack上的数据必须拥有已知的固定的大小 大小未知的数据或运行时大小可能发生变化的数据必须存放在heap上 String类型 //创建String类型的值 使用from函数 let s = String::from("hello"); 这类字符串可以被修改 fn main()

  • 【译】Rust 中的错误处理2022-02-05 17:31:55

    Error Handling in Rust 译文(Rust 中的错误处理) 原文链接:https://blog.burntsushi.net/rust-error-handling/ 原文作者:Andrew Gallant 译文来自:https://github.com/suhanyujie/article-transfer-rs/ 译者:suhanyujie 译者博客:suhanyujie ps:水平有限,翻译不当之处,还请指正。 标签:Ru

  • rust :字节跳动镜像设置2022-02-04 21:02:37

    [source.crates-io] registry = “https://rsproxy.cn” 具体在.cargo下config文件中:

  • Rust中mut, &, &mut的区别2022-02-03 13:32:46

    资源:内存区块。不同的内存区块位置和大小就是不同的资源。 strlet a = "xxx".to_string();  含义:a绑定到字符串资源A上,拥有资源A的所有权 let mut a = "xxx".to_string(); 含义:a绑定到字符串资源A上,拥有资源A的所有权,同时a还可绑定到新的资源上面去(更新绑定的能力,但新旧资源类

  • Rust枚举类型2022-01-31 15:34:08

    使用 enum 定义枚举类型。 比如,通过 enum 声明一个名为 IpAddrKind 的枚举,其包含所有可能的 IP 地址种类 —— V4 和 V6,在 Rust 中 V4 和 V6 这些枚举可能 出现的情况被称为 枚举变体(variant): enum IpAddrKind { V4, V6, } 创建枚举类型的实例: let four = IpAddrKind::V4;

  • Rust结构体关联函数2022-01-31 14:31:53

    除了 方法,Rust块还允许我们定义不用接收 self 作为参数的函数。由于这类函数与结构体相互关联,所以它们也被称为 关联函数(associated function)。我们将其命名为函数而不是方法,是因为它们不会作用域某个具体的结构体实例。比如,曾经接触过的 String::from 就是关联函数的一种。 关联

  • Rust中的方法2022-01-31 13:03:35

    使用 fn 关键字声明 方法 (与 函数 相似)。 方法与函数的区别是:方法总是被定义在某个结构体(或者枚举类型、trait对象)的上下文中,并且它们的第一个参数永远是 self ,用于指代调用该方法的结构体实例。 定义方法的格式: impl 结构体名 { 方法 } 示例程序: #[derive(Debug)] struct Us

  • Rust结构体打印调试({:?}和{:#?})2022-01-31 12:31:46

    Rust为结构体提供了打印调试信息的功能,但是默认不启用。要启用这个功能,需要在结构体定义前添加注解: #[derive(Debug)] 然后再使用 {:?} 或 {:#?}(后者更易读一些) 在 println! 中输出。 示例程序: #[derive(Debug)] struct User { name: String, age: u32, } fn main() {

  • Rust-条件编译2022-01-30 16:00:48

    #[cfg] #[cfg]允许我们基于一个传递给编译器的标记编译代码。它有两种形式: #[cfg(foo)] fn foo(){ } #[cfg(bar="baz")] fn bar(){ } 它还有一些帮助选项: #[cfg(any(unix,target_pointer_width = "32"))] pub fn foo(){ } #[cfg(all(unix,windows))] pub fn bar(){ } #[cfg(

  • Rust中结构体的字段初始化简写2022-01-30 12:32:07

    字段初始化简写(field init shorthand):在字段名与变量名相同时,不需要使用 字段名: 变量名 的形式,而直接使用 字段名 的形式。 示例程序: struct User { username: String, email: String, sign_in_count: u64, active: bool, } fn build_user(username: String, ema

  • Rust结构体更新语法2022-01-30 12:31:27

    我们在定义一个新的结构体变量时可以使用已有的成员的属性来更新。 下面的程序使用 结构体更新语法 根据其他结构体实例创建新的结构体实例。 示例程序: struct Student { name: String, chinese: u32, math: u32, science: u32, english: u32 } fn main() {

  • Rust定义并实例化结构体2022-01-29 16:04:01

    Rust 中使用 struct 关键字定义并实例化结构体。 示例程序: struct User { username: String, email: String, sign_in_count: u64, actice: bool, } fn main() { let user1 = User { username: String::from("yuyoubei"), email: String::fr

  • 公开课:Rust 入门基本原理-2 | Vol. 262022-01-28 10:01:11

    01《 Rust 入门基本原理-2 》| Vol. 26 分享主题:《Rust 入门基本原理-2》| Vol. 26 分享讲师: 苏林 分享时间: 周日晚上 2021-12-26 20:30-21:30 腾讯会议地址: https://meeting.tencent.com/dm/mlhs6YsYuFRb 会议 ID: 258 663 900 课程介绍: 1、所有权机制。 2、借用和生命周期的理解

  • Rust构建环境搭建2022-01-27 09:33:45

    ###安装涉及的概念rustup : 安装rust和管理版本的工具,当前rust尚处于发展阶段,存在三种类型的版本,稳定版、测试版、每日构建版本,使用rustup可以在这三种的版本之间切换,默认是稳定版本。通过rustup可以安装rustc、cargo等工具。cargo: rust的代码组织管理工具,提供了一些列的工具

  • Rust中的可变引用(存在一些问题)2022-01-26 23:01:20

    示例程序: fn main() { let mut s = String::from("hello"); make_yuyoubei(&mut s); println!("{}", s); // 输出 yuyoubei } fn make_yuyoubei(s: &mut String) { *s = String::from("yuyoubei"); } 使用使用 &mut 来修饰函

  • Rust引用与借用2022-01-26 22:34:18

    & 代表引用语义,它允许你在不获取变量的所有权的情况下使用值。 借用(borrowing):用过 引用 传递参数给函数的过程。 引用默认是不可变的。 示例程序: fn main() { let s = String::from("yuyoubei"); let len = get_len(&s); println!("len = {}", len); // 输出 len =

  • Rust返回值与作用域2022-01-26 12:31:13

    Rust中在函数返回值的时候也会发生作用域的转移。 示例程序: fn main() { let s1 = gives_ownership(); let s2 = String::from("hello"); let s3 = takes_and_gives_back(s2); } fn gives_ownership() -> String { let some_string = String::from("yuyoubei"

  • Rust中的所有权与函数2022-01-25 12:35:04

    示例程序: fn main() { let s = String::from("yuyoubei"); // 变量s进入作用域 takes_ownership(s); // s的值被移进了函数,所以它从这里开始不再有效 let x = 5; // 变量x进入了作用域 makes_copy(x);

  • Rust:axum学习笔记(7) websocket2022-01-24 22:31:09

    接上一篇继续,今天来学习下如何用axum实现websocket,代码如下: Cargo.toml添加依赖项 [package] name = "websocket" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [depend

  • Rust中变量的移动move2022-01-24 18:00:07

    示例程序: fn main() { let s1 = String::from("yuyoubei"); let s2 = s1; println!("s1 = {}", s1); } 运行这段程序会报错,报错信息如下: error[E0382]: borrow of moved value: `s1` --> src\main.rs:4:25 | 2 | let s1 = String::from("yuy

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有