ICode9

精准搜索请尝试: 精确搜索
  • 【Mio】UDP 服务器2022-02-26 21:32:02

    环境 Time 2022-01-08 Rust 1.57.0 mio 0.8 概念 参考:https://github.com/tokio-rs/mio/blob/master/examples/tcp_server.rs 将客户端发送的消息转为大写后返回。 UDP 服务器基本功能实现完成,只能做练习使用,不可用于生产环境。 示例 监听端口 const SERVER: Token = Token(0)

  • Rust复杂的表达式解析结果探讨2022-02-25 13:59:03

    在上文Solana项目学习(一):Hello World_biakia0610的专栏-CSDN博客中,我们学习了solana的helloworld例子,在代码最后一部分,有一个非常复杂的表达式: greeting_account.serialize(&mut &mut account.data.borrow_mut()[..])?; 这里的&mut &mut account.data.borrow_mut()[..] 到底是返

  • 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实战系列 - 使用Iterator 迭代器实现斐波那契数列(Fibonacci )2022-02-05 01:03:54

    为什么是斐波那契数列 斐波那契数列十分适合用来实战rust的迭代器,算法也很简单,一目了然。这个例子可以用来学习Iterator的使用,十分适合刚学习了rust的迭代器章节后用来练练手。 代码实战 don't bb, show me the code struct Fib(usize, usize); impl Fib { fn new() -> Fib {

  • 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-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中的String类型2022-01-24 12:33:29

    String类型会在堆内存上分配自己需要的存储空间,所以它能够处理在编译时位置大小的文本。 示例: 创建一个空字符串: let s = String::new(); 调用String的from函数根据字符串字面量来创建一个String实例: let s = String::from("yuyoubei"); 这里的双冒号(::)运算符允许我们调用置于St

  • Rust在loop循环中返回值2022-01-23 18:35:31

    使用break后加表达式的形式返回值。 例如,下面的程序输入n,输出>=n的最小的7的倍数: use std::io; fn main() { let mut s = String::new(); io::stdin().read_line(&mut s).unwrap(); let mut n: i32 = s.trim().parse().unwrap(); let n = loop { if n %

  • Rust中的while条件循环2022-01-23 18:35:03

    while条件循环一般格式: while 条件表达式 { 循环体 } 它循环判断条件表达式是否成立,若成立,执行循环体的内容,直到条件表达式不成立或者中途使用break等方式退出循环。 下面的程序输入n,循环输出1~n: use std::io; fn main() { let mut s = String::new(); io::stdin().

  • Rust中的输入与输出2022-01-20 18:35:21

    一个简单的输入样例: use std::io; fn main() { let mut s = String::new(); io::stdin().read_line(&mut s) // 输入一行字符串 .expect("failed to read line."); println!("{}", s); // 输出字符串 } 该程序的目的是从命令行输入一行字符串,并原模原样

  • Rustlang-快速排序2022-01-19 10:36:45

    pub fn partition(nums: &mut Vec<usize>, l: usize, r: usize) -> usize { let pivot = r; //基数的起始位置要和 第一个while起始下标相对. let mut i = l; let mut j = r; loop { while nums[i] < nums[pivot] { i += 1; }

  • OFDM系统仿真【matlab源码】2022-01-15 13:02:25

    实验原理 链接: https://blog.csdn.net/qq_44394952/article/details/122508495. OFDM.m // clear all; close all; carrier_count = 200; % 子载波数 symbol_count = 100; %总符号数 ifft_length = 512; % IFFT长度 CP_length = 128; % 循环前缀 CS_length = 20; % 循环后缀

  • Rust 刷leetcode 第二题2022-01-07 14:34:01

    题目描述 力扣 // Definition for singly-linked list. #[derive(PartialEq, Eq, Clone, Debug)] pub struct ListNode { pub val: i32, pub next: Option<Box<ListNode>>, } struct Solution {} impl Solution { pub fn add_two_numbers( l1:

  • Rust 计算一组数的平均数、中位数和众数2022-01-07 01:31:24

    直接上代码: use std::collections::HashMap; // 获取平均数 pub fn get_average_number(vec_numbers:&Vec<i64>) -> Option<f64> { if vec_numbers.is_empty() { return None; } let mut result: f64 = 0.0; for i in vec_numbers.iter()

  • IP数据报头部2022-01-06 23:05:10

    1.4位版本号:对于ipv4,其值是4 2.4位头部长度:表示ip的头部有多少4字节。4位最大表示15,因此ip数据报头部最长是60字节 3.16位总长度:以字节为单位。最大的位2^16-1,但是由于MUT的限制,超过MUT的都被分片传输 4.16位标示:唯一的标示每个数据报。分片的数据报该位相同 5.13位片偏移:相对

  • Rust队列和栈2022-01-05 21:08:37

    前言 Rust 标准库里面是有 Vec这种可以在堆上分配内存的连续可增长的数组类型。可以用它很方便的实现队列和栈,但是他只能增长不能收缩。所以接下来使用链表实现队列 结点的结构 #[derive(Debug)] struct Node<T> { data: T, next: Option<Box<Node<T>>>, } impl<T> Node<

  • Rust双向链表2022-01-04 20:00:44

    节点的结构 指向节点的指针可能为空值,所以在最外层包裹一层 Option一个节点可能存在被两个指针指向(前一个节点的 next 和后一个节点的 prev),指针需要用 Rc 包裹。Rc指针指向的值默认情况下是不可以修改的,只读性质。可以通过RefCell指针修改其内部的值 #[derive(PartialEq, Eq,

  • Rust单链表2022-01-02 21:35:08

    节点的结构 希望链表存储在堆上,所以使用 Box 包裹节点 Rust 没有空值,所以用 Option 在包裹一层 #[derive(PartialEq, Eq, Clone, Debug)] struct ListNode<T> { pub data: T, pub next: Option<Box<ListNode<T>>>, } 根据索引查找节点和找尾节点是通过递归来查找的 impl<

  • Rust 程序设计语言 web server (tokio)2021-12-20 23:00:10

    Rust 程序设计语言 web server 1 web server 源码2 web server (tokio) 1 web server 源码 // src/bin/main.rs use std::fs; use std::io::prelude::*; use std::net::{TcpListener, TcpStream}; use web_server::ThreadPool; fn main() { let listener = TcpLis

  • 【Rust】生存期-函数2021-12-17 21:04:31

    环境 Rust 1.56.1 VSCode 1.61.2 概念 参考:https://doc.rust-lang.org/stable/rust-by-example/scope/lifetime/fn.html 示例 main.rs fn print_one<'a>(x: &'a i32) { println!("`print_one`: x is {}", x); } // 可变的变量生存期标注 fn add_one<&#

  • 【Rust】生存期-方法2021-12-17 21:04:19

    环境 Rust 1.56.1 VSCode 1.61.2 概念 参考:https://doc.rust-lang.org/stable/rust-by-example/scope/lifetime/methods.html 示例 main.rs struct Owner(i32); impl Owner { fn add_one<'a>(&'a mut self) { self.0 += 1; } fn print<

  • Zellij-一个典型的 Rust程序的性能优化案例2021-12-11 12:00:21

      我们程序员开发过程中,尤其是在程序调试的过程中,通常会并行开许多Terminal窗口。不过时间一久,可能就会忘了每个终端都是用于来干嘛的。于是,如何让界面保持清爽,同时又不降低工作效率,成了很多开发者的最大痛点。 Zellij是一款非常优秀的终端工作区和多路复用器(类似于tmux和

  • Rust 迭代器2021-12-06 17:03:20

    迭代器 迭代器是惰性的,调用方法使用迭代器之前,不会有任何的效果。 每个迭代器都实现了iterator trait,这个 trait 定义在标准库里。 trait Iterator { type Item; // type Item和Self::Item这种用法叫做定义trait的关联类型。这里只定义了这个函数,并没有实现,如果使用自定义

  • Rust程序设计语言(7)2021-12-06 10:01:30

    前言 最近真的有点焦虑啊, 难受了 Rust 的标准库中有一些我们常用的数据结构, 帮助我们更快更好的开发代码, 这种数据结构被称为集合, 大部分其他的数据结构, 比如int大多数只能代表一个值, 而集合可以有多个值 当然我们之前提到的 数组, 元组, 也是可以存储多个值, 但是他们是

  • The Rust Programming Language - 第19章 高级特征 - 19.1 不安全的Rust2021-12-04 18:59:53

    19 高级特征 我们将在这一章学习更多高级功能 19.1 不安全的Rust 截至目前,我们所编译的代码Rust在编译时会强制执行检查,以确保内存安全。但是Rust还提供了一种模式,不安全Rust,这些代码被编写在 unsafe 块中,它们与常规代码无异,但是能提供额外的功能,满足我们无法通过安全Rust代

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

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

ICode9版权所有