原文地址:Rust Case Study: Community makes Rust an easy choice for npm原文作者:The Rust Project Developers译文出自:掘金翻译计划本文永久链接:github.com/xitu/gold-m…译者:WangLeto校对者:xionglo…
Rust学习笔记
Rust编程语言入门教程课程笔记
参考教材: The Rust Programming Language (by Steve Klabnik and Carol Nichols, with contributions from the Rust Community)
Lecture 18: Patterns and Matching
src/main.rs
fn main() {//match arms// match VALUE {// …
JetBrains最近推出的Rust集成开发工具——RustRover已经发布,官方网站:RustRover: Rust IDE by JetBrains JetBrains出品过很受欢迎的开发工具IntelliJ IDEA、PyCharm等。 RustRover优势
Rust集成环境,根据向导可自动下载安装rust开发环境提…
玩一下rust tauri app
dev on mac
不知道为什么在mac上npm权限要root
bash
cargo install create-tauri-app
cargo create-tauri-app
# use typescript, vue
cd <project-name>
sudo npm i
sudo npm run tauri devindex.html
输入一下html元素
大体逻辑是
使用we…
Hello!大家好,我是霜淮子,2023倒计时第10天。 Share
Rest belongs to the work as the eyelids to the eyes.
译文:
休息与工作的关系,正如眼睑与眼睛的关系。
Man is a born child,his power is the power of gro…
61.一个趣味小题目
没看出来考察什么,这题用泛型可以过,用if卡样例也能过
// quiz3.rs
// This quiz tests:
// - Generics
// - Traits
// An imaginary magical school has a new report card generation system written in Rust!
// Currently the system only supports c…
21.Rust Slice(切片)类型 切片(Slice)是对数据值的部分引用。
字符串切片 最简单、最常用的数据切片类型是字符串切片(String Slice)。 fn main() { let s String::from(“broadcast”);
let part1 &s[0..5];
let part2 &s[5..9];println!(…
New API Token:改善crates.io上的API tokens 今日Rust Blog官博上Tobias Bieniek发文写到,如果您最近在 crates.io 上生成了新的 API 令牌,您可能已经注意到我们的新 API 令牌创建页面及其现在支持的一些新功能。以下是内容:以前&…
self-replace:解决 Windows 上二进制文件自卸载的难题 Self-replace 是一个 Rust 库,它提供了一个有用的解决方案,帮助解决在 Windows 系统下实现二进制文件自卸载操作的难题。在 Windows 上,可执行文件无法直接被删除,…
这是每一个程序员和开发人员都问过的问题,还有很多人仍然在问,即使他们已经做出了自己的决定。Rust vs. Go。2022年,我应该选择哪一个?或选择哪种语言--Golang或Rust。 Golang和Rust是目前使用的最年轻的编程语言。Go于2009年在谷…
if 表达式
在Rust中, if语句的判断条件不需要用( )括起来, 它会认为所有在if 和 {之间的表达式就是判断条件,例如:
if num 5 {msg "five";
}判断条件的表达式必须返回一个bool型的值, 因为Rust是一个不喜…
Rust学习笔记
Rust编程语言入门教程课程笔记
参考教材: The Rust Programming Language (by Steve Klabnik and Carol Nichols, with contributions from the Rust Community)
Lecture 20: Final Project: Building a Multithreaded Web Server
src/main.rs
use std::fs;
…
关注了就能看到更多这么棒的文章哦~Packaging Rust for FedoraBy Jonathan CorbetOctober 28, 2022DeepL assisted translationhttps://lwn.net/Articles/912202/Linux 发行版设计的时候,当时的通用原则是用 C 语言来写程序,因此人们所关心的…
方法一,通过choice方式生成验证码 此方法生成每次调用crate_code()会生成三个随机数,然后再三个随机数中选择一个,资源调用相对多些 import randomdef v_code(code_length):res []if isinstance(code_length,int):for i in range(code_lengt…
angularionicnpm项目运行 错误记录(1)Downloading binary from https://github.com/sass/node-sass/releases/download/v4.14.1/win32-x64-72_binding.node(2)The npm warning "A requires a peer of B but none is installe…
81.宏函数里面的不同的匹配规则需要使用分号隔开
// macros4.rs
//
// Execute rustlings hint macros4 or use the hint watch subcommand for a
// hint.// I AM NOT DONE#[rustfmt::skip]
macro_rules! my_macro {() > {println!("Check out my macro!");};($…
1.做题须知
这一题告诉我们可以尝试修改下面的输出,在觉得OK之后删除// I AM NOT DONE注释即可进入下一题
// intro1.rs
// About this I AM NOT DONE thing:
// We sometimes encourage you to keep trying things on a given exercise, even
// after you already figured …
Rust程序设计语言 所有权 变量与数据交互的方式 移动 let x 5;
let y x; // 将变量 x 的整数值赋给 ylet s1 String::from("hello");
let s2 s1; String由三部分组成:一个指向存放字符串内容的指针,一个长度,和一个容量。这一…
Rust学习笔记
Rust编程语言入门教程课程笔记
参考教材: The Rust Programming Language (by Steve Klabnik and Carol Nichols, with contributions from the Rust Community)
Lecture 17: Object-Oriented Programming Features of Rust
src/main.rs
use oop::Draw;
use …
组合数。 编写函数,参数是两个非负整数n和m,返回组合数 C n m C_n^m Cnm,其中m≤n≤25。 例如,n25,m12时答案为5200300。
解法:
fn c(n: u32, m: u32)->u64 {let m if m > n-m {n-m}else{m};le…
输入整数a和b(0≤a≤3000,1≤b≤3000),输出a/b的循环小数表示以及循环节长度。例如a5,b43,小数表示为0.(116279069767441860465),循环节长度为21。
解法 就是模拟竖式除法
use std::{collecti…
Rust类型转换知多少
Rust类型转换方式大致有三种:
as 语法实现From traittryFrom trait as 语法实现的类型转换只能用于基本类型之前都相互转换,如果基本类型转非基本类型就会编译错误。 From Trait 一般用于非基本类型的转换(比较复杂的…
PostgreSQL 对于 C 语言编写的函数(包括其他与 C 语言兼容的语言,如 C、Rust 等),是动态装载的,用 CREATE FUNCTION 创建完函数后,并不会立即装载,而是有连接建立之后,客户端第一次调…
文章目录 I. 引言解释CSS预处理器是什么提及CSS预处理器的好处 II. 为什么要使用CSS预处理器减少代码量变量Mixin函数 & 条件语句 提升CSS的可读性和维护性嵌套规则继承 方便维护加入Source Map方便调试自动前缀 III. 简介几个流行的CSS预处理器Sass介绍Sass的特性解释Sass…
字符串和切片
切片
切片的作用是允许你引用集合中部分连续的元素序列,而不是引用整个集合。
例如:
let s String::from("hello world");let hello &s[0..5]; // 切片 [0,5) 等效于&s[..5]
let world &s[6..11]; // 切片…
一、模式是什么
模式是Rust中特殊的语法,它用来匹配值
二、模式的使用场景
(一)match match的每个分支箭头左边部分就是模式。
match VALUE {PATTERN > EXPRESSION,PATTERN > EXPRESSION,PATTERN > EXPRESSION,
}例子
match x …
据了解,PuzzleFS宣称是“下一代 Linux 容器文件系统”,并使用Rust语言编写,具有“快速镜像构建”、“直接挂载支持”、“内存安全保证”等功能mroeoyw。
Multiable万达宝制造ERP(www.multiable.com.cn/solutions_zz)支持自定义栏位,并智能制…
std::marker::Sync
可以安全地在线程之间共享引用的类型(it is safe to share references between threads)。 当编译器认为合适时(compiler determines it’s appropriate),此trait会自动实现。
精确的定义…
有n行n列(2≤n≤9)的小黑点,还有m条线段连接其中的一些黑点。统计这些线段连成了多少个正方形(每种边长分别统计)。 行从上到下编号为1~n,列从左到右编号为1~n。边用H i j和V i j表示…
1.if表达式
if 表达式允许根据条件执行不同的代码分支, 以下代码是一个典型的使用if表达式的例子:
fn main() {let number 3;
if number < 5 {println!("condition was true");} else {println!("condition was false");}
}
所有的 if 表达式都以…
文章目录 Guess a number0x01. Guess a number .part 1line 1loopline 3~7match 0x02. Reverse for enum0x03. Reverse for Tuple0x04. Guess a number .part 20x05. 总结 在上一篇文章中,我们比较完美地完成了第一次Rust ELF的逆向工作,但第一次编写的R…
文章目录 Reverse for Shadow0x01. 变量类型不修改0x02. 变量类型修改 Reverse for ArrayReverse for MovingReverse for References and BorrowsReverse for String Slices总结 在本文中,我们将跟随《Rust权威指南》的学习路线,继续进行Rust逆向的学习。…
Rust学习笔记
Rust编程语言入门教程课程笔记
参考教材: The Rust Programming Language (by Steve Klabnik and Carol Nichols, with contributions from the Rust Community)
Lecture 12: An I/O Project: Building a Command Line Program
project: minigrep
src/main.r…
安装命令
curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh
$ curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh
info: downloading installerWelcome to Rust!This will download and install the official compiler for the Rust
programming la…
前言
当前采用桌面端框架位tauri,现在需要调用读卡器等硬件设备,硬件厂商提供了32位的动态链接库,现在记录例子,需要注意的点是使用libloading库和libc库,
[package]
name "yyt-device-rust"
version &q…
遮蔽
声明和前面变量具有相同名称的新变量
例子1
fn main() {let x 5;let x x 1;{let x x * 2;println!("The value of x in the inner scope is: {}", x);}println!("The value of x is: {}", x);
}运行
$ cargo runCompiling variables v0.1.0 (…
一 、变量定义
(一)语法格式 使用let关键字定义变量
let varname: type value;
如,let a: i32 78;也可以不显式指定类型
let varname value;
如,let a 78;一些例子
1.布尔
let t true;
let f: bool false;2.整数
let a …
在某些场景下,你的RUST代码可能需要与另外一种语言编写的代码进行交互。RUST为此提供了extern关键字来简化创建和使用外部函数接口(Foreign Function Interface,FFI)。FFI是编程语言定义函数的一种方式,它允许其它编程…
use futures::stream::StreamExt; // 引入 StreamExt 以使用 next() 方法
use rdkafka::config::ClientConfig;
use rdkafka::consumer::{CommitMode, Consumer, StreamConsumer};
use rdkafka::error::KafkaResult;
use rdkafka::message::{Message};async fn run_consumer() …
Rust 是一种现代、高性能的编程语言,近年来在 Web 开发领域也有了一席之地。本文将介绍如何使用 Rust 编写一个简单的 Web 程序,从搭建开发环境到创建第一个 Web 页面。 1. 开发环境搭建
首先,确保你已经安装了 Rust 工具链。你可以通过在终…
目录
10. 正则表达式匹配 Regular Expression Matching 🌟🌟🌟
11. 盛最多水的容器 Container with most water 🌟🌟
12. 整数转罗马数字 Integer to Roman 🌟🌟
🌟 每日一练…
Rust 是一种系统编程语言,它专注于内存安全、并发和性能。它是由 Mozilla 开发的,并得到了许多社区的广泛支持。Rust 的设计理念是“安全 by default”,这意味着你不需要特殊的工具或技巧来编写安全的代码。
Rust 的主要特点:
内…
上一节学习了rust里面的打印“函数”,本节分析一下源文件的结构。
源文件*.rs的结构
fn main() {//注释println!("Hello, world!");let a 2023;println!("a is {0}, a again is {0}", a);println!("{{}}");
}上面这段代码定义了一…
原文:Inside a Super Fast CSS Engine: Quantum CSS(Aka Stylo), Lin Clark 注:原文发布于 2017 年 8 月,本文翻译于 2018 年 4 月,因此对文中跟时间相关的部分内容做了调整,但不影响核心内容。 全新的 CSS 引擎 - Sty…
定义一(http://ebpf.io的定义) eBPF (which is no longer an acronym for anything) is a revolutionary technology with origins in the Linux kernel that can run sandboxed programs in a privileged context such as the operating system kernel.…
关注了就能看到更多这么棒的文章哦~Rust in the 6.2 kernelBy Jonathan CorbetNovember 17, 2022DeepL assisted translationhttps://lwn.net/Articles/914458/6.1 版本的合并窗口带来了对用 Rust 编写内核代码的基本支持,这里的关键词是 "基本&quo…
2019独角兽企业重金招聘Python工程师标准>>> 03 Nov 2015 23:00:00 0100 rustfmt just added support for receiving code on stdin. This means that you can now pipe things into rustfmt on stdin and receive a plain formatted version of your input on stdo…
fn main() { println!("九九乘法表!"); for i in 1..10{ for j in 1..i1{ print!("{}*{}{}\t",j,i,i*j) }println!() }}转载于:https://www.cnblogs.com/a208606/p/10524048.html
一、基础用法 // 定义一个混合对象
var myMixin {created: function () {this.hello()},methods: {hello: function () {console.log(hello from mixin!)}}
}
// 定义一个使用混合对象的组件
var Component Vue.extend({mixins: [myMixin]
})
var component new Component()…
目录
Part I
Hello Worls原生类型自定义类型变量绑定 :let绑定操作将值绑定到变量;mut修饰变量可以改变;作用域遮蔽;冻结:被数据被相同的名称不变的绑定;类型系统类型转换表达式流程控制:for循环没有括号…
在 Rust 中 use 和 mod 究竟做了什么? 这篇文章从一个以 IDE 为中心的教程快速开始,需要很少的预备知识。如果你有一个 Rust 项目并且想弄清楚如何拆分文件,那很好。这篇文章将深入细节,让你了解在 Rust 中文件和模块加载的原理。…
开发环境
Windows 10Rust 1.71.1 VS Code 1.81.1 项目工程
这里继续沿用上次工程rust-demo
编写自动化测试
Edsger W. Dijkstra在他1972年的文章《谦逊的程序员》中说,“程序测试可以是一种非常有效的方法来显示错误的存在,但它对于显示它们的不存在…
文章目录 73. 矩阵置零:样例 1:样例 2:提示:进阶: 分析:题解:rust:go:c:python:java: 73. 矩阵置零:
给定一个 m x n 的矩…
原文链接:Replacing a hot path in your apps JavaScript with WebAssembly February 15, 2019. 在之前的文章中我讲述了 WebAssembly 是如何允许我们将 C/C 生态中的库应用于 web 应用中的。一个典型的使用了 C/C 扩展包的 web 应用就是 squoosh,这个应…
这里写自定义目录标题1. tauri vs electron1.1. Tauri 是什么1.2. 前端看法1.3. 开源项目作者看法1. tauri vs electron
1.1. Tauri 是什么
Tauri 是一个跨平台 GUI 框架,与 Electron 的思想基本类似。Tauri 的前端实现也是基于 Web 系列语言,Tauri 的…
Building and Deploying a Rust library on Android 官方编译环境配置地址:https://mozilla.github.io/firefox-browser-architecture/experiments/2017-09-21-rust-on-android.html 1、安装Android ndk环境 2、配置ndk 到path中
export ANDROID_HOME/Users/$USER/…
我在看Rust官网提供的例子是Mutex<u32>类型的实现方式,但是当我改成Mutex<String>类型想要修改他的值时,惊喜就出现了,无法编译通过,下面是的代码:
use std::sync::{Mutex, Arc};
use std::thread;fn mai…
2.2 数据类型 let guess: u32 "42".parse().expect("Not a number!"); Rust has four primary scalar types: integers, floating-point numbers, Booleans, and characters. 整数类型 u32,this type declaration indicates that the value it’s associ…
其他封装Tensor library for machine learning, inspired by ggmlhttps://github.com/candrewlee14/zgmlBleeding edge low level Rust binding for GGMLhttps://github.com/KerfuffleV2/ggml-sys-bleedingedgeYour customized AI characters - personal assistants on any har…
文章目录 导言一、基本用法二、匹配枚举类型三、解构和匹配结构体四、使用 if let 简化匹配五、匹配多个模式六、if let 和 while let七、match 的穷尽性检查总结 导言
在 Rust 中,匹配(Pattern Matching)是一种强大的语言特性,它…
需求:Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring. 如果一个字符串从左向右写和从右向左写是一样的,这样的字符串就叫做pa…
Fn是啥,普通的一款 fn test<T>(f: T) where T: Fn() { f(); } let s String::from("66"); let f || {println!("{}", s);}; test(f); 这种就可以了
如果f里发生了s.push_str(“7”) 那么明显 这个时候发生了MUT! 只需要把Fn改成FnMut…
rust把mod简单的事没说清,一片混乱,似懂非懂. mod语句查找只有一条规则:先找mod名1.rs,没有就我同名文件夹下的mod名1.rs,如果没有,就同名文件夹下的mod名1/mod.rs,再没有就error. 在mod.rs中,pub mod 文件…
特征: 就目前我学习到的rust知识来看,我认为rust有以下几个特征:
链式调用表达式强类型
use 使用use导入包,我觉得rust的导包和python的很像
main main函数是rust可执行程序最先执行的代码,可以说是程序的入口&…
由于各种原因,我最后还是打算把Yew应用的开发从csr模式转成ssr模式。没想到这里面的水还是挺深的,这里面的Cargo.toml配置包含的信息量之大,着实让我头疼了一番。
Cargo.toml的配置如下
[package]
name "app"
version "0.…
乐观地看FUSE 我喜欢文件。每个计算机系统都理解文件。每个程序都知道如何读取和写入文件。这是一个真正通用的API。因此,我喜欢FUSE的想法。FUSE的名字来源于Filesystem in Userspace,也就是“用户态文件系统”,是一套允许用户模式程序定义文…
11.函数原型有参数时需要填写对应参数进行调用
这里原先call_me函数没有填写参数导致报错 添加一个usize即可
// functions3.rs
// Execute rustlings hint functions3 or use the hint watch subcommand for a hint.fn main() {call_me(10);
}fn call_me(num: u32) {for i i…
Rust学习笔记
Rust编程语言入门教程课程笔记
参考教材: The Rust Programming Language (by Steve Klabnik and Carol Nichols, with contributions from the Rust Community)
Lecture 1: Getting Started
hello_world.rs
fn main(){println!("Hello World!"); …
不一样的break
先看一下其他语言的break
javaScript
break 语句可用于跳出循环。
break 语句跳出循环后,会继续执行该循环之后的代码(如果有的话)
for (i0;i<10;i)
{if (i3){break;}xx "The number is " i "<br…
React的安装和使用
一、React的安装和使用
reactJs警告提示: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap
翻译:tar2.2.2:此版本的tar不再受支持,将不会收到安全…
91.将指针还原成指定类型
因为指针不知道里面具体有什么,所以一般约定打上unsafe
申明开发者自己对该部分可用性负责,且在调试的时候也能起强调作用
// tests6.rs
//
// In this example we take a shallow dive into the Rust standard librarys
// unsafe functions. Fix …
10月15日,非凸科技受邀参加RustCC联合多家开发者社区组织的Global Tour of Rust技术分享活动,旨在为Rust开发者提供交流互动的平台,分享Rust语言的知识、经验和最佳实践。 活动上,非凸科技成都分公司研发总监赵海峰以“Rust安全进…
vector
// generic template
Vec<T>// craete a empty vecetor
let v: Vec<i32) Vec::new();// use macro vec! to create a vector, which can detect the argument type
let v vec![1, 2, 3];v.push(5);
v.pop();// 使用[],如果索引越界(无…
Rust学习笔记
Rust编程语言入门教程课程笔记
参考教材: The Rust Programming Language (by Steve Klabnik and Carol Nichols, with contributions from the Rust Community)
Lecture 3 Common Programming Concepts
fn main() {// Variables and Mutabilitylet mut x 5;…
Rust学习笔记
Rust编程语言入门教程课程笔记
参考教材: The Rust Programming Language (by Steve Klabnik and Carol Nichols, with contributions from the Rust Community)
Lecture 10: Generic Types, Traits, and Lifetimes
lib.rs
use std::fmt::Display;//Traits: …
问题表现:
cargo build时一直卡在Blocking waiting for file lock on the registry index。
解决方法:
1、之前在linux下出现过一次,采用这种方法解决了:rust - Cargo build hangs with " Blocking waiting for file lock…
输入n篇文章和m个请求(n<100,m≤50000),每个请求都是以下4种格式之一。 A:查找包含关键字A的文章。 A AND B:查找同时包含关键字A和B的文章。 A OR B:查找包含关键字A或B的文章。 NOT A&…
一、用cargo创建新工程
命令:cargo new comport use std::env;
use std::{thread, time};
use serialport::{DataBits, StopBits, Parity, FlowControl};
use std::io::{self, Read, Write};
use std::time::Duration;fn main() -> io::Result<()> {let m…
nt-apiset: 一个用于 WindowsAPI API Set Map文件 的 Rust 解析器 我的bootloader程序项目的下一个构建块已经准备好了!Nt-apiset 是用 Rust 编写的用于 Windows10及更高版本的 API Set Map 文件的解析器。 API Set是名称以“ API-”或“ ext-”开头的 PE 可执行文件…
以下为在 ESP-IDF (FreeRTOS) 上运行的 blinky 示例:
https://github.com/esp-rs/esp-idf-hal/blob/master/examples/blinky.rs
//! Blinks an LED
//!
//! This assumes that a LED is connected to GPIO4.
//! Depending on your target and the board you are …
Rust学习笔记
Rust编程语言入门教程课程笔记
参考教材: The Rust Programming Language (by Steve Klabnik and Carol Nichols, with contributions from the Rust Community)
Lecture 16: Fearless Concurrency 无畏并发
src/main.rs
use std::thread;
use std::time::Du…
Rust学习笔记
Rust编程语言入门教程课程笔记
参考教材: The Rust Programming Language (by Steve Klabnik and Carol Nichols, with contributions from the Rust Community)
Lecture 18: Patterns and Matching
src/main.rs
fn main() {//match arms// match VALUE {// …
Rust学习笔记
Rust编程语言入门教程课程笔记
参考教材: The Rust Programming Language (by Steve Klabnik and Carol Nichols, with contributions from the Rust Community)
Lecture 15: Smart Pointers
src/main.rs
use crate::List::{Cons, Nil};
use std::ops::Deref…
绝大多数第一次接触 Async Rust 的开发者所写的 Hello World 程序是下面这样的: async fn say_world() {println!("world");
}#[tokio::main]
async fn main() {// Calling say_world() does not execute the body of say_world().let op say_world();//…
Rust学习笔记
Rust编程语言入门教程课程笔记
参考教材: The Rust Programming Language (by Steve Klabnik and Carol Nichols, with contributions from the Rust Community)
Lecture 5: Using Structs to Structure Related Data
// define a struct
#[derive(Debug)]
st…
Rust学习笔记
Rust编程语言入门教程课程笔记
参考教材: The Rust Programming Language (by Steve Klabnik and Carol Nichols, with contributions from the Rust Community)
Lecture 14: More About Cargo and Crates.io
main.rs
//Customizing Builds with Release Pro…
Rust学习笔记
Rust编程语言入门教程课程笔记
参考教材: The Rust Programming Language (by Steve Klabnik and Carol Nichols, with contributions from the Rust Community)
Lecture 16: Fearless Concurrency 无畏并发
src/main.rs
use std::thread;
use std::time::Du…
fn main() {let r;{let x 5;r &x}print!("r:{}", r);
}let r 这种初始化的方式在RUST中是被允许的,过程中程序声明了两个变量x和r,程序无法正常编译。
x does not live long enough 编译报错的原因:被引用对象的存活时间短语…
Rust vs. Go,在2024年,应该选择哪一个?或者说应该选择哪种语言——GoLang还是Rust。这可能是许多程序员在选择语言时考虑的一个问题。选择理想的编程语言被视为在这个不断变化的环境中取得成功的重要抉择。
GoLang和Rust是当今使用的最年轻的…
前言
在现代前端开发中,构建工具是不可或缺的一部分。Webpack 和 Vite 作为两个主流的构建工具,都在前端开发中发挥着重要作用。本文将深入探讨一些与构建工具相关的面试题,涵盖Webpack的loader、主要作用,以及Webpack中的HMR&am…
1 说明
一些学习记录 环境:MacOS
2 步骤
1、执行curl --proto https --tlsv1.2 https://sh.rustup.rs -sSf | sh 2、看到打印
info: downloading installerWelcome to Rust!... ...This path will then be added to your PATH environment variable by
modifyin…
当我在我的 windows 电脑上安装 rust,然后用 cargo 新建了一个项目后,cargo run 会报错:
error: linker link.exe not found| note: program not foundnote: the msvc targets depend on the msvc linker but link.exe was not foundnote: p…
Motūrus OS For 云端的简单、快速和安全的操作系统。目标是基于虚拟机的工作负载,如 Web服务、Serverless、边缘缓存等。 为什么有这个项目? 目前,大多数虚拟化生产环境工作负载都在运行Linux。虽然Linux具有许多先进功能,在许多…
目录 简介首次用户技术特点竞品和相关作品进一步阅读 简介
dua 是 Disk Usage Analyzer 的简写,该工具可以快速查看给定目录的磁盘空间使用情况。
对于想要深入了解磁盘空间使用情况并有效管理存储的用户来说,Dua 是一个很有价值的工具。通过使用 Dua …
Rust创建猜数字游戏 1.构建项目1.测试项目运行 2.处理一次猜想 1.构建项目
cargo new guessing_game
cd guessing_game1.测试项目运行
cargo run2.处理一次猜想
// io输入/输出库,io库来自于标准库
use rand::Rng;
use std::cmp::Ordering;
use std::io;fn main(…
下面聊聊以下主题:
基于条件的分支循环函数属性测试
基于条件的分支
基于条件的分支,可以通过常见的 if、if else 或 if else if else 构造来完成,例如下面的示例:
fn main() { let dead false; let health 48; if dead { p…
在Rust中,条件语句是控制程序流程的重要组成部分。if-else表达式是一种用于根据条件执行不同代码分支的强大工具。本篇博客将深入介绍Rust中的if-else表达式,并通过具体的例子展示其用法和灵活性。
基础用法
fn main() {let number 31;if number <…
多线程并发编程
使用多线程
use std::thread;
use std::time::Duration;fn main() {thread::spawn(|| {for i in 1..10 {println!("hi number {} from the spawned thread!", i);thread::sleep(Duration::from_millis(1));}});for i in 1..5 {println!("hi nu…
21.使用()对变量进行解包
// primitive_types5.rs
// Destructure the cat tuple so that the println will work.
// Execute rustlings hint primitive_types5 or use the hint watch subcommand for a hint.fn main() {let cat ("Furry McFurson", 3.5);// 这里…
原文连接
为了保证概念的严谨性,翻译时保留了英文原文。
I recently hit a limitation of Rust when working with trait objects. I had a function that returned a trait object and I needed a trait object for one of its supertraits.
最近,我…
论文 - 利用公共信息评估 Rust 代码库 作者 Emil Eriksson 是 Lund University 的硕士学生,今年春天发布了其硕士论文 Evaluation of Rust Codebases Using Public Information ,并获得了 electrical engineering 学位。 在论文撰写过程中,Em…
概念
Rust 中的函数定义以 fn 开始,后跟着函数名和一对圆括号。大括号告诉编译器函数体在哪里开始和结束。
特殊的地方——函数返回值
错误的写法
正解1
去掉分号
fn main() {let x plus_one(5);println!("The value of x is: {}", x);
}fn plus_…
71.box的使用
说实话这题没太看懂.敲了个模板跟着提示就过了
// box1.rs
//
// At compile time, Rust needs to know how much space a type takes up. This
// becomes problematic for recursive types, where a value can have as part of
// itself another value of th…
前言 tokio是Rust中使用最广泛的异步Runtime,它性能高、功能丰富、便于使用,是使用Rust实现高并发不可不学的一个框架 Actor 背后的基本思想是产生一个独立的任务,该任务独立于程序的其他部分执行某些工作。 通常,这些参与者通过使…
文章目录 前言一、Material Web Components二、使用步骤配置启用自定义元素 前言
Web Components是一种用于构建可重用的Web应用组件的技术标准。它由一系列相关的技术组成,包括自定义元素、Shadow DOM、模板和HTML Imports。
Web Components的主要好处和优点包括…
配置连接点 材质 连接器控制
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Connector : MonoBehaviour
{[Header("连接器位置")]public ConnectorPosition connectorPosition;[Header("连接器所属建筑类型&qu…
文章目录 前言环境案例macOS 编译为 Linux 和 Windows 可用二进制程序编译为 Linux 平台编译为Windows平台 最后 前言
鉴于 rust 中文资料较少,遇到问题的解决方案更少。这里记录遇到的一些问题。 Rust 支持交叉编译,可以在 macOS 平台编译出 Linux 或者…
最近,在使用vscode测试rust代码时,遇到了一些问题。在经过反复折腾后,最终解决了问题,在此写下作为记录,以便于以后参考。
我遇到的报错内容是: Failed to spawn one or more proc-macro servers. cannot find proc-macro-srv, the workspace E:\100rust\temp is missin…
在Rust中,你可以使用std::sync::Mutex来创建一个互斥锁,从而保护共享资源。下面是一个使用Mutex的简单示例:
use std::sync::Mutex;
use std::thread;
use std::time::Duration; fn main() { // 创建一个包含整数的Mutex let counter…
在Rust中,|| 是闭包的语法。闭包是一种可以捕获作用域中变量的匿名函数。|| 用来定义一个没有参数的闭包。
你可以使用 || 来创建一个没有参数的闭包,例如:
let my_closure || {println!("This is a closure with no parameters.&quo…
枚举(enum)和 match 控制流构造
枚举(enum)和 match 控制流构造是 Rust 语言中非常强大的特性,它们一起提供了一种安全、表达性强的方式来处理多种可能的值。
枚举(enum)
枚举允许你定义一个…
本文提供了一种计算文件md5和sha1的方法。
添加依赖
cargo add file-hashing
cargo add md-5
cargo add sha1添加功能函数
use file_hashing::get_hash_file;
use md5::Md5;
use sha1::{Digest, Sha1};
use std::io::Error;
use std::path::Path;pub fn md5<P: AsRef<…
数据结构与算法-Rust 版笔记
一、语言入门
1、关键字、注释、命名风格
目前(可能还会增加)39个,注意,Self和self是两个关键字。
Self enum match super
as extern mod trait
async false …
Rust学习笔记
Rust编程语言入门教程课程笔记
参考教材: The Rust Programming Language (by Steve Klabnik and Carol Nichols, with contributions from the Rust Community)
Lecture 13: Functional Language Features Iterators and Closures
use std::thread;
use std:…
Rust学习笔记
Rust编程语言入门教程课程笔记
参考教材: The Rust Programming Language (by Steve Klabnik and Carol Nichols, with contributions from the Rust Community)
Lecture 11: Writing Automated Tests
src/lib.rs
//Tests: Arrange, Act, Assert
//#[test] a…
前言
近年来,Rust的受欢迎程度不断上升。首先,在操作系统领域,Rust 已成为 Linux 内核官方认可的开发语言之一,Windows 也宣布将使用 Rust 来重写内核,并重写部分驱动程序。此外,国内手机厂商 Vivo 也宣布…
引入crate
tokio { version "1.35.1", features ["full"] }
服务端
use std::time::Duration;
use tokio::{io::{AsyncBufReadExt, AsyncWriteExt},net::{tcp::{OwnedReadHalf, OwnedWriteHalf},TcpListener, TcpStream,},sync::mpsc,
};#[tokio::ma…
一、anyhow库的基本使用
anyhow库提供了一个便捷的Error类型——anyhow::Error,它是一个trait对象,可以容纳任何实现了std::error::Error trait的类型。这意味着你可以方便地将各种不同类型的错误包裹进一个统一的错误类型中:
use anyhow::…
一、Rust调用同级目录中的rs文件
Rust新建工程demo02,src文件夹下面新建test.rs文件,这样main.rs文件与它属于同级目录中。 关键点:导入test文件和test文件中的Ellipse模块
mod test;//导入test模块(文件)
use test…
Rust 特性: Drop 特性(类 C 析构函数) 文章目录Rust 特性: Drop 特性(类 C 析构函数)正文0. 关于析构函数1. 代码实现1.0 Drop 实现1.1 自动回收1.2 主动回收其他资源参考连接完整代码示例正文
0. 关于析构函数
写过 C 的应该都知道,资源被释放的时候会调用析构函…
一、异步处理单任务 1、cargo.toml
[dependencies]
tokio { version "1.0.0", features ["full", "tracing"] }
tokio-util { version "0.7.0", features ["full"] }
tokio-stream { version "0.1" }…
原文链接:Replacing a hot path in your apps JavaScript with WebAssemblyFebruary 15, 2019. 在之前的文章中我讲述了 WebAssembly 是如何允许我们将 C/C 生态中的库应用于 web 应用中的。一个典型的使用了 C/C 扩展包的 web 应用就是 squoosh,这个应用…
tokio::net
该模块包含TCP/UDP/Unix网络类型,类似于标准库,可用于实现网络协议。 networking protocols
Organization
TcpListener and TcpStream provide functionality for communication over TCP UdpSocket provides functionality for communication over UDP UnixLi…
介绍:
在开发过程中,我们可能会遇到错误消息: “error: future cannot be sent between threads safely”。这个错误通常是由于使用了不可发送(not Send)的类型引起的,尤其是 std::sync::MutexGuard 类型。…
在 Rust 中,Result<T, E> 类型是一个枚举,它表示一个操作可能成功并返回一个值 T,或者失败并返回一个错误 E。在 C 语言中,没有直接对应的 Result 类型,但我们可以使用结构体和枚举来模拟它。
下面是一个用 C 语…
在 Rust 中,for 循环是一种用于迭代集合(如数组、切片、向量、字符串、映射、通道等)或其他可迭代对象的方式。Rust 的 for 循环语法相对直观,并且与许多其他编程语言中的 for 循环类似。
以下是 for 循环在 Rust 中的一些常见用…
rust的logo集合,看看有没有你喜欢的,挑一个吧;
GitHub - XuHugo/rust-logo: Collection of logo images for all rust languages
下边只是挑选了几个,更多的还是看github吧。
都说Rust的学习曲线很陡峭,试过才知雀实不容易。 先说我的基础,非科班,自学Python,写过几个小程序。 我买书从来不扣扣嗖嗖的,所以先啃了几本Rust的入门书,包括: Tim McNamara的《Rust实战》&am…
tokio 是 rust 生态中流行的异步运行时框架。在实际生产中我们如果希望 tokio 应用程序与特定的 cpu core 绑定该怎么处理呢?这次我们来聊聊这个话题。
首先我们先写一段简单的多任务程序。
use tokio::runtime;
pub fn main() {let rt runtime::Builder::new_mu…
What & Why
Python:有GC(垃圾回收机制),内存安全,学习曲线平缓。 C/C:无GC,无法确保内存安全,学习曲线一般,但是要学的很多,称为高手确保代码内存安全不…
let v: i32 10;
let v1 &v;
let a: *const i32 &v;
println!("a{:p}", a);
let b a as *mut i32; //无法从&v直接转换成*mut i32,需要从*const i32过度
println!("b{:p}", b);
unsafe {*b1;
}
println!("v{} v1{}"…
最近把原来的老版本rust升级为最新版本, 转悠了半天给我报一个 目录不存在异常而升级失败。
异常信息:
info: rolling back changes
error: failure removing component rust-docs-x86_64-apple-darwin, directory does not exist: share/doc/rust/ht…
rust 中 match 表达式和 go 中 switch 有几分相似,但 rust 语言的无厘头性,让 math 有了更多的组合。
返璞归真
match 表达式的简单操作,case 分支流程,所有未匹配到条件都会走 _ 的流程,类似于 Go 语言 switch 中的…
智慧英语 Blind men can judge no colours. 不宜问道于盲. Blessed is he who expects nothing, for he shall never be disappointed. 人无所求最享福,因他不为失望苦. Blood is thicker than water. 血浓于水. Blood will have blood. 血债要用血来还. Books and…
文章目录 69. x 的平方根:样例 1:样例 2:提示: 分析:题解:rust:go:c:python:java: 69. x 的平方根:
给你一个非负整数 x ,…
warp框架简介
warp is a super-easy, composable, web server framework for warp speeds.
warp建立在hyper之上,因此,warp天生支持异步,HTTP/2,以及“正确的HTTP实现”。
warp的强大之处在于其提供的filter系统,它…
我们经常使用let 语句创建新的变量绑定——但是 let 的功能并不仅限于此。事实上, let 语句是一个模式匹配语句。它允许我们根据内部结构对值进行操作和判断,或者可以用于从代数数据类型中提取值。
let tuple (1_i32, false, 3f32);
let (head, center…
背景
看rust官方文档,好奇Any和Go的Any是否是一回事,看到下文的一行代码,了解下它的功能
impl Any for T where T: static ?Sized
让任何类型 T 都实现 Any trait。Any trait 用于执行动态类型检查,允许在运行时检查一个值是…
介绍
A UTF-8–encoded, growable string(可增长字符串). 拥有string内容的所有权
A String is made up of three components: a pointer to some bytes, a length, and a capacity. The length is the number of bytes currently stored in the buffer
pub fn as_bytes(&…
你的任务是为交易所设计一个订单处理系统。要求支持以下3种指令。 BUY p q:有人想买,数量为p,价格为q。 SELL p q:有人想卖,数量为p,价格为q。 CANCEL i:取消第i条指令对应的订单(输…
原文地址
为了保证概念的严谨性,翻译时保留了英文原文。
In this post, we explore cooperative multitasking and the async/await feature of Rust. We take a detailed look at how async/await works in Rust, including the design of the Future trait, the…
1、编译错误 Serde: “cannot find derive macro Deserialize/Serialize in this scope”
已经在Cargo.toml中添加如下内容了,也提示添加成功,但是错误依旧:
[dependencies] serde { version "1.0", features ["derive&q…
闭包 Closure
闭包是一种匿名函数,它可以赋值给变量也可以作为参数传递给其它函数,不同于函数的是,它允许捕获调用者作用域中的值,例如:
fn main() {let x 1;let sum |y| x y;assert_eq!(3, sum(2));
}上面的代码…
元组和解构语法
let tup : (i32, f64, u8) (666, 2.0, 1);let tup (666, 2.0, 1);
let (x, y, z) tup;let x tup.0;
let y tup.1;
let z tup.2;数组类型 数组定义是方括号:[ ] 元组定义是小圆括号:( ) 结构体定义是大括号:{ }…
Rust学习笔记
Rust编程语言入门教程课程笔记
参考教材: The Rust Programming Language (by Steve Klabnik and Carol Nichols, with contributions from the Rust Community)
Lecture 7: Managing Growing Projects with Packages, Crates, and Modules
src/main.rs
// s…
Rust学习笔记
Rust编程语言入门教程课程笔记
参考教材: The Rust Programming Language (by Steve Klabnik and Carol Nichols, with contributions from the Rust Community)
Lecture 9: Error Handling
use std::error::Error;
use std::io::ErrorKind;
use std::fs::Fil…
Rust学习笔记
Rust编程语言入门教程课程笔记
参考教材: The Rust Programming Language (by Steve Klabnik and Carol Nichols, with contributions from the Rust Community)
Lecture 8: Common Collections
fn main() {//Vectorlet mut v: Vec<i32> Vec::new();//…
Rust1.9
Rust1.9中最大的变化是稳定了包括停止恐慌启动的展开过程方法的std::panic模块:
use std::panic;
let result panic::catch_unwind(|| {println!("hello!");
});
assert!(result.is_ok());
let result panic::catch_unwind(|| {panic!("oh no!"…
文章目录 初步示例创建动态数组增删改迭代 初步示例
Rust提供了动态数组这种数据类型,所谓动态,就是长度可变,示例如下
fn main(){let mut vec Vec::new();for i in 1..5{vec.push(i);}for i in &vec{println!("{}", i);}
}…
1.23
从Rust1.0开始,有叫AsciiExt的特征来提供u8,char,[u8]和str上的ASCII相关功能.要使用它,需要如下编写代码:
use std::ascii::AsciiExt;
let ascii a;
let non_ascii ;
let int_ascii 97;
assert!(ascii.is_ascii());
assert!(!non_ascii.is_ascii());
assert!(int_a…
Rust初学习 常见概念变量与可变性变量常量隐藏 数据类型标量类型字符类型复合类型元组数组 函数参数语句和表达式具有返回值的函数 注释控制流使用循环重复执行 常见概念
变量与可变性
变量
fn main() {let x 5;println!("The value of x is: {x}");x 6;println…
Rust中 零成本抽象的 future
One of the key gaps in Rust’s ecosystem has been a strong story for fast and productive asynchronous I/O. We have solid foundations, like the mio library, but they’re very low level: you have to wire up state machines and jugg…
报错:
error: cant find Rust compilerIf you are using an outdated pip version, it is possible a prebuilt wheel is available for this package but pip is not able to install from it. Installing from the wheel would avoid the need for a Rust compil…
代码:
async fn doAsyncPrint(v:u32) {println!("start doAsyncPrint,v is {},tid is {:?}",v,system::myTid());//thread::sleep(Duration::from_secs(1));time::sleep(Duration::from_secs(10)).await;println!("end,v is {},tid is {:?}"…
目标:
检测OS类型和基础信息File 和 IO 模块/etc或者注册表
OS related
use std::env;fn main() {println!("OS module is not for check OS!\r\n");println!("Use ENV to detect OS info:");println!("OS: {}", env::consts::OS)…
59. 螺旋矩阵II ★★ 力扣题目链接,给你一个正整数 n ,生成一个包含 1 到 n 2 n^2 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。1 < n < 20
示例 1: 输入:n 3
输出:[[1,…
Rust 与 C 是两种高级系统级编程语言,它们都在追求性能、控制底层硬件细节的同时强调安全性。以下是两者的详细对比:
目标与理念 Rust:由 Mozilla 主导开发,目标是构建一种既快速又安全的系统级编程语言,特别是解决 C…
在Rust编程语言中,.unwrap() 方法主要应用于处理 Result 或 Option 类型。这两种类型常用于处理可能会出现错误或缺失值的情况。
Result<T, E>: 当你有一个 Result 类型的变量,并且你知道或者期望它一定是 Ok 值(即不包含错误…
十八、Rust gRPC 多 proto 演示 网上及各官方资料,基本是一个 proto 文件,而实际项目,大多是有层级结构的多 proto 文件形式,本篇文章 基于此诉求,构建一个使用多 proto 文件的 rust grpc 使用示例。
关于 grpc 的实现…
引用与借用
上一篇中,我们介绍了rust的所有权概念,若直接传递变量做函数参数,堆上的变量就会失去所有权,而栈上变量则由于复制,仍有所有权。
fn main(){let b 3;makes_copy(b);println!("after using a variab…
FFI
FFI(Foreign Function Interface)是这样一种机制:用一种编程语言写的程序能调用另一种编程语言写的函数(routines)。
调用约定,类型表示和名称修饰这三者的统称,即是众所周知的应用二进制…
官方仓库:https://crates.io/crates/regex
文档地址:regex - Rust
github仓库地址:GitHub - rust-lang/regex: An implementation of regular expressions for Rust. This implementation uses finite automata and guarantees linear tim…
解决方案
On VS 2022, I tested both solutions.
4.39 GB “MSVC v143 - VS 2022 C x64/x86 build tools” and “Windows 10 SDK”
2.86 GB “Desktop development with C”
Its better to just select “Desktop Development with C”.
Heres the download for VS 202…