-1. rust介绍
Rust语法结构和C类语言类似,它可以用来替换 C()/C++(面向对象型),
0. 安装
如果你暂时不想在本地安装,或者本地安装有问题,对于我们初学者来说,也有一个方便、快捷的方式,就是 Rust 语言官方提供的一个网页端的 Rust 试验场open in new window,可以让你快速体验。
Rust语法结构和C类语言类似,它可以用来替换 C()/C++(面向对象型),
如果你暂时不想在本地安装,或者本地安装有问题,对于我们初学者来说,也有一个方便、快捷的方式,就是 Rust 语言官方提供的一个网页端的 Rust 试验场open in new window,可以让你快速体验。
designing algorithms
这是另一个内容
要将Rust项目打包成一个可执行文件(exe程序,dgm程序,apk程序),我们需要构建一个带有用户界面的应用程序。可以使用Tauri
框架来实现,它可以帮助我们将Rust应用程序与现代Web技术结合,创建跨平台的桌面应用程序。
首先,我们需要安装Tauri CLI
。确保您已安装Node.js
和npm
,并使用以下命令安装Tauri CLI:
本文内容摘编自: 快速入门:Rust中有哪些你不得不了解的基础语法?(著作权归AI悦创所有) Rust语言圣经(Rust Course)-字符串与切片
本文摘编自:快速入门:Rust中有哪些你不得不了解的基础语法?(著作权归AI悦创所有)
下面我们来了解一下 Rust 语言的控制流语句。
if else
Rust 中使用 if else 来构造分支。
fn main() {
let number = 6;
// 判断数字number能被4,3,2中的哪一个数字整除
if number % 4 == 0 {
println!("number is divisible by 4");
} else if number % 3 == 0 {
println!("number is divisible by 3");
} else if number % 2 == 0 {
println!("number is divisible by 2");
} else {
println!("number is not divisible by 4, 3, or 2");
}
}
分割线构成的框中内容摘编自:快速入门:Rust中有哪些你不得不了解的基础语法?(著作权归AI悦创所有)
最后我们来看 Rust 的函数、闭包和模块,它们用于封装和复用代码。
函数基本上是所有编程语言的标配,在 Rust 中也不例外,它是一种基本的代码复用方法。在 Rust 中使用 fn 关键字来定义一个函数。比如:
&str
首先,&str
是字符串切片类型,表示对一段字符串的引用。它是一种不可变的、固定大小的引用,通常用于借用字符串数据。
'static
生命周期生命周期 'static
表示数据在整个程序的运行期间都是有效的。换句话说,任何带有 'static
生命周期的引用都指向在程序运行期间一直存在的数据。
部分内容摘编自:https://bornforthis.cn/column/Rust/02.html(著作权归AI悦创所有)
Rust 的核心功能(之一)是 所有权(ownership)。 在第一节课中,我们了解了 Rust 语言里的值有两大类:一类是固定内存长度(简称固定尺寸)的值,比如 i32、u32、由固定尺寸的类型组成的结构体等;另一类是不固定内存长度(简称非固定尺寸)的值,比如字符串 String。这两种值的本质特征完全不一样。而怎么处理这两种值的差异,往往是语言设计的差异性所在。
Box<T>
RC<T>
由于rust的数据的所有权默认随着赋值(读取)而转移,但有时一个值会有多个所有者,为了支持多重所有权,我们使用:RC<T>
比如数据需要被程序的多个部分读取(只读),编译者无法确定哪个部分最后使用完这些数据时应该使用RC<T>
支持多重所有权
只适用于单线程场景
不可变引用,共享只读数据
RC<T>
不在预倒入模块,需要使用std::rc::Rc
导入摘编自学校课件
fn main(){
let i=42;
// let j= i; /* The Ownership changed, i can not be used
let j= i+1-1; //i is still uesfull
println!("{}", i);
println!("{}", j);
let s = String::from("hello");
let b =s.clone()+" world";
println!("{}", s);
println!("{}", b);
let b =s+" world"; //s cannot be used anymore
// println!("{}", s);
// ^ value borrowed here after move
println!("{}", b);
}