
Rust
a457636876
这个作者很懒,什么都没留下…
展开
-
Rust 基础速览(二)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档Rust 基础速览(二)前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤原创 2021-09-30 16:35:56 · 155 阅读 · 0 评论 -
Rust 基础速览(一)
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-09-29 18:18:21 · 166 阅读 · 0 评论 -
Rust 实现 Http-Sever
教程来自官方教程Rust Http-Server单线程WebServer监听TCP链接读取请求编写响应读取HTML文件并渲染验证请求有效性并选择性的响应重构多线程服务器模拟慢速请求使用线程池改进吞吐量为每个请求创建独立线程使用固定数量的线程池创建接口在new中验证线程数量创建用于存放线程的空间创建线程使用通道请求发送给线程实现execute方法优雅地停机与清理通知线程停止监听单线程WebServer监听TCP链接监听传入的TCP流,并在接收到流时打印信息。use std::net::TcpList原创 2021-01-29 21:47:07 · 1592 阅读 · 0 评论 -
Rust-宏(Macro)
以下文章是根据官网教程学习:教程地址如下:https://doc.rust-lang.org/book/ch19-06-macros.html我喜欢先写代码,再总结。所以直入主题。使用macro_rules声明宏目录结构├── macros.rs└── main.rsmacros.rs#[macro_export] // ① 表示下面的宏定义对其他包也是可见的macro_rules! vec { // ② 定义一个名为 vec 的宏 // ③ // 首先使用一对圆括号包原创 2021-01-28 17:25:31 · 799 阅读 · 0 评论 -
Rust 循环引用造成的内存泄漏
use crate::List::{Cons, Nil};use std::cell::RefCell;use std::rc::Rc;#[derive(Debug)]enum List { Cons(i32, RefCell<Rc<List>>), Nil,}impl List { fn tail(&self) -> Option<&RefCell<Rc<List>>> {原创 2021-01-03 12:12:19 · 528 阅读 · 0 评论 -
使用 RefCell 修改一个不可变的值
使用 RefCell 修改一个不可变的值pub trait Messenger { fn send(&self, msg: &str);}pub struct LimitTracker<'a, T: Messenger> { messenger: &'a T, value: usize, max: usize,}impl<'a, T> LimitTracker<'a, T> where原创 2021-01-01 19:54:25 · 351 阅读 · 0 评论 -
使用Rc<T>共享数据
使用Rc共享数据enum List { Cons(i32, Box<List>), Nil,}use crate::List::{Cons, Nil};fn main() { let a = Cons(5, Box::new(Cons(10, Box::new(Nil)))); let b = Cons(3, Box::new(a)); let c = Cons(4, Box::new(a));}示例:enum List { C原创 2021-01-01 19:52:49 · 464 阅读 · 0 评论 -
Rust自定义智能指针
fn main() { let x = 5; let y = Box::new(x); assert_eq!(5, x); assert_eq!(5, *y);}自定义智能指针use std::ops::Deref;struct MyBox<T>(T);impl<T> MyBox<T> { fn new(x: T) -> MyBox<T> { MyBox(x) }}i原创 2021-01-01 18:09:08 · 219 阅读 · 0 评论 -
Rust Error: Os { code: 9, kind: Other, message: “Bad file descriptor“ }
use std::io::{Write, Seek, SeekFrom};use std::io::ErrorKind;use std::fs::{File, OpenOptions};use std::error;fn main() -> Result<(), Box<dyn error::Error>> { let file_path = "./hello.txt"; let file = File::open(file_path); le原创 2020-12-30 14:29:59 · 1047 阅读 · 0 评论 -
Rust Panic 处理
Rust Panic 处理use std::fs::File;use std::io::ErrorKind;fn main() { let f = File::open("hello.txt"); let f = match f { Ok(file) => file, Err(error) => match error.kind() { ErrorKind::NotFound => match File::c原创 2020-12-29 22:03:02 · 889 阅读 · 0 评论 -
通过Rust编译时出现的错误来学习Rust
通过Rust编译时出现的错误来学习Rustcannot assign twice to immutable variable x不能复制两次不可变xfn main() { let x = 5; // solution: let mut x = 5; println!("The value of x is {}", x); x = 6; println!("The value of x is {}", x);}consider giving guess a type原创 2020-12-29 16:43:11 · 7617 阅读 · 0 评论