当前位置: 首页 > news >正文

【rust】rust基础代码案例

文章目录

  • 代码篇
    • HelloWorld
    • 斐波那契数列
    • 计算表达式(加减乘除)
    • web接口
  • 优化篇
    • target/目录占用一个g,仅仅一个actix的helloWorld demo
    • 升级rust版本, 通过rustup
    • cargo换源
    • windows下放弃吧,需要额外安装1g的toolchain并且要配合msvc(10g起步吧)或者mingw。

代码篇

HelloWorld

fn main() {print!("Hello,Wolrd")
}

斐波那契数列

fn fib(n: u64) -> u64 {let mut a = 0;let mut b = 1;for _ in 0..n {let c = a + b;a = b;b = c;}a
}fn main() {let n = 10;let result_list: Vec<String> = (1..n+1).map(|i| fib(i).to_string()).collect();let result = result_list.join(",");println!("{}", result);
}

计算表达式(加减乘除)

use std::io;
use std::num::ParseIntError;
fn parse_expression(expression: &str) -> Result<i32, ParseIntError> {let mut result = 0;let mut current_number = 0;let mut operator = '+';for token in expression.split_whitespace() {match token {"+" => operator = '+',"-" => operator = '-',"*" => operator = '*',"/" => operator = '/',_ => {current_number = match token.parse::<i32>() {Ok(num) => num,Err(e) => return Err(e),};match operator {'+' => result += current_number,'-' => result -= current_number,'*' => result *= current_number,'/' => result /= current_number,_ => {},}}}}Ok(result)
}
fn main() {println!("请输入表达式(例如:1 + 2 * 3):");let mut input = String::new();io::stdin().read_line(&mut input).expect("读取输入失败");let expression = input.trim();match parse_expression(expression) {Ok(result) => println!("计算结果为:{}", result),Err(e) => println!("解析表达式时出错:{}", e),}
}

web接口

use actix_web::{get, post, web, App, HttpResponse, HttpServer, Responder};#[get("/")]
async fn hello() -> impl Responder {HttpResponse::Ok().body("Hello world!")
}#[post("/echo")]
async fn echo(req_body: String) -> impl Responder {HttpResponse::Ok().body(req_body)
}async fn manual_hello() -> impl Responder {HttpResponse::Ok().body("Hey there!")
}#[actix_web::main]
async fn main() -> std::io::Result<()> {HttpServer::new(|| {App::new().service(hello).service(echo).route("/hey", web::get().to(manual_hello))}).bind(("127.0.0.1", 8080))?.run().await
}

优化篇

target/目录占用一个g,仅仅一个actix的helloWorld demo

~/.cargo/config写入, 放到项目之外去,眼不见心不烦

[build]
target-dir = "/path/rust-target"

在这里插入图片描述
不过一个demo 接口, 你执行下cargo run 和 cargo build --release, 就占用1.2g。 这可真烧磁盘, 有node_module那味儿了。

升级rust版本, 通过rustup

export RUSTUP_DIST_SERVER="https://rsproxy.cn"
export RUSTUP_UPDATE_ROOT="https://rsproxy.cn/rustup"
rustup update

cargo换源

~/.cargo/config写入

[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
replace-with = 'ustc'
[source.ustc]
registry = "https://mirrors.ustc.edu.cn/crates.io-index/"

windows下放弃吧,需要额外安装1g的toolchain并且要配合msvc(10g起步吧)或者mingw。

在这里插入图片描述
比linux下的工具链大多了
在这里插入图片描述

相关文章:

【rust】rust基础代码案例

文章目录 代码篇HelloWorld斐波那契数列计算表达式&#xff08;加减乘除&#xff09;web接口 优化篇target/目录占用一个g&#xff0c;仅仅一个actix的helloWorld demo升级rust版本&#xff0c; 通过rustupcargo换源windows下放弃吧&#xff0c;需要额外安装1g的toolchain并且要…...

【深度学习】PromptFix:多功能AI修图

PromptFix:你来提示,我们修图 NeurIPS 2024 最近,在计算机视觉和图像处理领域,一个名为PromptFix的新项目引起了广泛关注。PromptFix是一个基于PyTorch实现的开源项目,旨在根据用户的自然语言指令,对受损或需要处理的图像进行智能修复和优化。 本文将详细介绍PromptFix…...

2024最新AI绘画系统软件(Midjourney)+GPT4文档分析总结,多模态识图理解,AI文生图/图生图/混图生图(图像混合)

一、前言 人工智能的快速发展已成为全球关注的焦点&#xff0c;其应用领域广泛&#xff0c;涵盖绘图、语言处理、视频编辑等。前沿技术不仅推动科技创新&#xff0c;还在艺术创作、内容生产和商业实践等方面展示出巨大潜力。例如&#xff0c;AI语言模型显著提升了内容自动生成、…...

【信号处理】基于联合图像表示的深度学习卷积神经网络

Combined Signal Representations for Modulation Classification Using Deep Learning: Ambiguity Function, Constellation Diagram, and Eye Diagram 信号表示 Ambiguity Function(AF) 模糊函数描述了信号的两个维度(dimensions):延迟(delay)和多普勒(Doppler)。 …...

C#基础-区分数组与集合

目录 区分数组与集合 1.定义 1&#xff09;数组 2&#xff09;集合 2.大小 1&#xff09;数组 2&#xff09;集合 3.访问速度 1&#xff09;数组 2&#xff09;集合 4.内存管理 1&#xff09;数组 2&#xff09;集合 5.使用场景 1&#xff09;数组 2&#xff0…...

ORACLE 19C 安装数据库补丁的详细过程

ORACLE 19c安装DB补丁&#xff1a; 1 确定OPatch的可用性&#xff1a;这里需要注意的是p6880880_190000_Linux-x86-64.zip是有版本对应区别的&#xff0c;需要注意你要打的补丁版本是否支持。 2 将原$ORACLE_HOME目录下的OPatch目录删除或者改名&#xff0c;比如说&#xff1a…...

tensorflow案例5--基于改进VGG16模型的马铃薯识别,准确率提升0.6%,计算量降低78.07%

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 前言 本次采用VGG16模型进行预测&#xff0c;准确率达到了98.875&#xff0c;但是修改VGG16网络结构&#xff0c; 准确率达到了0.9969&#xff0c;并且计算量…...

代码中的设计模式-策略模式

假如我们有一段代码,有很多的if else function executeAction(type) {if (type A) {console.log(Action A);} else if (type B) {console.log(Action B);} else if (type C) {console.log(Action C);} else {console.log(Unknown action);} }executeAction(A); // 输出: Ac…...

后端Node学习项目-项目基础搭建

前言 各位好&#xff0c;我是前端SkyRain。最近为了响应公司号召&#xff0c;开始对后端知识的学习&#xff0c;作为纯粹小白&#xff0c;记录下每一步的操作流程。 项目仓库&#xff1a;https://gitee.com/sky-rain-drht/drht-node 因为写了文档&#xff0c;代码里注释不是很…...

Python | Leetcode Python题解之第538题把二叉搜索树转换为累加树

题目&#xff1a; 题解&#xff1a; class Solution:def convertBST(self, root: TreeNode) -> TreeNode:def getSuccessor(node: TreeNode) -> TreeNode:succ node.rightwhile succ.left and succ.left ! node:succ succ.leftreturn succtotal 0node rootwhile nod…...

【ZeroMQ 】ZeroMQ中inproc优势有哪些?与其它传输协议有哪些不同?

inproc 是 ZeroMQ 提供的一种传输协议&#xff0c;用于在同一进程内的不同线程之间进行高效的通信。与其他传输协议&#xff08;如 tcp、ipc 等&#xff09;不同&#xff0c;inproc 专门针对线程间通信进行了优化&#xff0c;具有极低的延迟和开销。以下是 inproc 的底层原理和…...

spark的学习-03

RDD的创建的两种方式&#xff1a; 方式一&#xff1a;并行化一个已存在的集合 方法&#xff1a;parallelize 并行的意思 将一个集合转换为RDD 方式二&#xff1a;读取外部共享存储系统 方法&#xff1a;textFile、wholeTextFile、newAPIHadoopRDD等 读取外部存储系统的数…...

一文了解Android SELinux

在Android系统中&#xff0c;SELinux&#xff08;Security-Enhanced Linux&#xff09;是一个增强的安全机制&#xff0c;用于对系统进行强制访问控制&#xff08;Mandatory Access Control&#xff0c;MAC&#xff09;。它限制了应用程序和进程的访问权限&#xff0c;提供了更…...

数据血缘追踪是如何在ETL过程中发挥作用?

在大数据环境下&#xff0c;数据血缘追踪具有重要意义&#xff0c;它能够帮助用户了解数据的派生关系、变换过程和使用情况&#xff0c;进而提高数据的可信度和可操作性。通过数据血缘追踪&#xff0c;ETL用户可以准确追溯数据的来源&#xff0c;快速排查数据异常和问题。 一、…...

跟我学C++中级篇——生产中如何调试程序

一、程序的BUG和异常 程序不是发布到生产环境就万事大吉了。没有人敢保证自己写的代码没有BUG&#xff0c;放心&#xff0c;说这种话的人&#xff0c;基本可以断定是小白。如果在开发阶段出现问题&#xff0c;还是比较好解决的&#xff0c;但是如果真到了生产上&#xff0c;可…...

Python爬虫实战 | 爬取网易云音乐热歌榜单

网易云音乐热歌榜单爬虫实战 环境准备 Python 3.xrequests 库BeautifulSoup 库 安装依赖 pip install requests beautifulsoup4代码 import requests from bs4 import BeautifulSoupdef get_cloud_music_hot_songs():url "http://music.163.com/#/discover/playlist…...

apk因检测是否使用代理无法抓包绕过方式

最近学习了如何在模拟器上抓取APP的包&#xff0c;APP防恶意行为的措施可分为三类&#xff1a; &#xff08;1&#xff09;反模拟器调试 &#xff08;2&#xff09;反代理 &#xff08;3&#xff09;反证书检验 第一种情况&#xff1a; 有的app检验是否使用系统代理&#xff0c…...

DevOps业务价值流:架构设计最佳实践

系统设计阶段作为需求与研发之间的桥梁&#xff0c;在需求设计阶段的原型设计评审环节&#xff0c;尽管项目组人员可能未完全到齐&#xff0c;但关键角色必须到位&#xff0c;包括技术组长和测试组长。这一安排旨在同步推进两项核心任务&#xff1a;一是完成系统的架构设计&…...

计算机网络——SDN

分布式控制路由 集中式控制路由...

开源数据库 - mysql - innodb源码阅读 - master线程(一)

master struct /** The master thread controlling the server. */void srv_master_thread() {DBUG_TRACE;srv_slot_t *slot; // 槽位THD *thd create_internal_thd(); // 创建内部线程ut_ad(!srv_read_only_mode); //断言 srv_read_only_mode 为 falsesrv_main_thread_proce…...

国产N32芯片开发避坑指南:J-Link在Keil中的特殊配置(含Cortex-M0配置模板)

国产N32芯片开发实战&#xff1a;J-Link调试配置深度解析与Keil环境优化 在国产MCU生态快速崛起的背景下&#xff0c;N32系列芯片凭借优异的性价比和本土化服务优势&#xff0c;正逐步成为工程师替代进口方案的新选择。然而&#xff0c;从传统ST芯片转向国产平台时&#xff0c;…...

大麦抢票自动化工具:技术赋能下的抢票效率革命

大麦抢票自动化工具&#xff1a;技术赋能下的抢票效率革命 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 在热门演出门票抢购场景中&#xff0c;用户常常面临手动操作反应迟缓、重复劳动效率低下…...

微服务架构的陷阱:我们是如何从拆分成“微”麻烦的

对于软件测试从业者而言&#xff0c;微服务架构的兴起既带来了前所未有的挑战&#xff0c;也揭示了隐藏在水面之下的诸多陷阱。从单体应用向微服务转型&#xff0c;初衷是为了提升系统的灵活性、可维护性和团队的交付效率。然而&#xff0c;在实践中&#xff0c;许多团队却发现…...

开源!手搓ESP-VoCat 喵伴桌面AI助手,帮你养萌宠 OpenClaw龙虾,内置豆包,会听、会动、会陪伴

模组选型&#xff1a;ttps://item.taobao.com/item.htm?ftt&id1033585120956&spma21dvs.23580594.0.0.4fee2c1bAqCiqc&skuId6211360130611 ESP-VoCat 喵伴是乐鑫携手火山引擎扣子大模型团队打造的智能 AI 开发套件&#xff0c;适用于玩具、智能音箱、智…...

PyTorch导入报错?手把手教你解决WinError 126找不到fbgemm.dll的问题(附libomp140.dll下载)

PyTorch导入报错终极解决方案&#xff1a;WinError 126缺失fbgemm.dll的深度修复指南 当你满怀期待地准备开始PyTorch深度学习项目时&#xff0c;突然遭遇"OSError: [WinError 126] 找不到指定的模块"错误&#xff0c;这感觉就像赛车手在起跑线上发现引擎无法启动。这…...

用Arduino和TCS34725颜色传感器做个桌面小助手:自动识别物体颜色并控制RGB灯带

用Arduino和TCS34725打造智能色彩互动系统&#xff1a;从硬件搭建到场景应用 在创客圈里&#xff0c;色彩交互一直是个充满魅力的领域。想象一下&#xff1a;当你把一杯橙汁放在桌面上&#xff0c;周围的灯光自动变成温暖的橙色&#xff1b;放上一本蓝色封面的书&#xff0c;工…...

高效安全的网页资源提取方案:猫抓开源工具的技术实现与专业应用

高效安全的网页资源提取方案&#xff1a;猫抓开源工具的技术实现与专业应用 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 在数字化时代&#xff…...

告别恼人红叉!保姆级教程:用acme.sh给宝塔面板IP地址换上Let‘s Encrypt免费证书

从红叉到绿锁&#xff1a;零成本为宝塔面板IP地址部署可信SSL证书全指南 每次打开宝塔面板&#xff0c;那个刺眼的红色安全警告是否让你如鲠在喉&#xff1f;作为服务器管理员&#xff0c;我们比谁都清楚自签名证书的实际安全性&#xff0c;但浏览器固执的警告提示却让新手用户…...

OpCore-Simplify:开源系统硬件适配的技术突破与架构革新

OpCore-Simplify&#xff1a;开源系统硬件适配的技术突破与架构革新 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 在开源系统定制领域&#xff0c;硬…...

华为OD面试官最爱问的10个Python八股文,我这样答拿到了Offer

华为OD Python面试实战指南&#xff1a;10个高频问题的深度解析与应答策略 面试开场&#xff1a;如何用技术叙事打动面试官 去年冬天&#xff0c;我坐在华为OD的会议室里&#xff0c;手指不自觉地敲击着桌面。面试官推了推眼镜&#xff0c;抛出了第一个Python问题。那一刻我突然…...