Rust语言尝鲜
2023-06-13 09:11:37 时间
首先,还是要吹捧一下这个编程语言。语法很严谨,Rust语言号称只要编译通过就不会崩溃(内存安全)。不像C++那种,概念混乱,连Bjarne Stroustrup都曾开玩笑说自己已经搞不懂C++了。而且一个报错信息就一万多行,然后必须是大师级的程序员,精通 Intel规范的汇编语言的那种C++程序员,才能搞清楚什么地方出了问题。个人认为Rust对于程序员的综合素质要求,是低于C++的。所以笔者决定将Rust作为首选。
下面牛刀小试一把。以函数式编程方式,计算数值积分。以定积分
为例。该积分精确值为-6.75.如果将积分区间500等分,计算结果为-6.723,相对误差为0.4%。Python以及C++编程实现点击这里:
Rust代码
fn main() {
let steps = 500; // 区间500等分
let a:f64 = 0.0;
let b:f64 = 3.0;
let dx = (b-a)/(steps as f64); //每个区间长度,注意整型变量显式转化成浮点型
let f = | x:f64 | {
x*x*x - 6.0*x
}; //闭包,相当于匿名函数,这里定义的是被积函数
let sub_area = | x:f64 | {
f(x)*dx
};//一个子区间的面积,还调用了被积函数
let res = (0..steps).map(|x| ( (x as f64)+1.0 )*dx ).map(|x| sub_area(x) ).sum::<f64>();
println!("结果为:{}", res)
}
程序中计算res的部分相当于C++里面的管道操作符。将{0,1,2,3,4,5,...,500}通过第一个map映射成每一个子区间中点,而第二个map就是通过子区间中点计算每一个子区间的面积。最后通过sum()函数累加起来。
Python入门容易,想要提高却很难。有一些机器学习的Python代码,很难理解。在学习一些底层语言比如C++,Rust之后,再去思考,就会容易一些了。
比如下面的问题:
use std::io::stdin;
fn main() {
println!("What is 3+2? Type your answer and press enter.");
let mut input = String::new();//字符串变量
stdin()
.read_line(&mut input)
.expect("Unable to read standard input");
if input == "5" {
println!("Correct!");
} else {
println!("Incorrect!");
}
}
键盘输入5,并由input接收,正常情况下input == "5"没毛病。可最后却输出"Incorrect!",为什么?原来我们在输入时按了enter键,\n意味着换行。
use std::io::stdin;
fn main() {
println!("What is 3+2? Type your answer and press enter.");
let mut input = String::new();//字符串变量
stdin()
.read_line(&mut input)
.expect("Unable to read standard input");
if input.trim() == "5" {
println!("Correct!");
} else {
println!("Incorrect!");
}
}
用trim方法将input多余的去掉,最后输出"Correct!"
相关文章
- tauri学习(3)-前端调用Rust代码
- rust-lang.org、crates.io,以及 docs.rs 的管理,已由 Mozilla 转移到 Rust 基金会
- 37.Rust-match匹配
- 2022-10-29:go语言中的defer能非常方便地处理资源释放问题,rust语言里如何实现defer功能呢?
- 没有 NGINX 和 OpenResty 的未来:Cloudflare 工程师正花费大量时间用 Rust 重构现有功能
- 2023 年值得关注的 6 个 Rust web开发框架
- rust语言流程控制
- 有喜欢Rust语言的7个理由,也有不爱的7个理由,又爱又恨
- rust写操作系统 rCore tutorial 学习笔记:实验指导二 内存分配与管理
- Rust 编程学习笔记Day 2 基本语法和数据结构
- Rust错误处理
- 字节跳动开源Volo:国内首个基于Rust语言的RPC框架
- C和C++不安全?谷歌宣布Android加入对Rust语言支持
- WebAssembly时代 Rust也想成为Web语言
- AWS 宣布赞助 Rust 语言
- 硬核观察 | Python 之父对 Rust、Go、Julia 和 TypeScript 的看法
- Rust实现高性能Redis服务器集群(rust 实现redis)
- Rust把Redis带入自动化时代(rust redis)