首页 > 其他分享 >1 Rust初识

1 Rust初识

时间:2024-02-27 21:00:24浏览次数:31  
标签:Cargo cargo rs -- 初识 main Rust

Rust初识

0. 引言

我学习Rust的初衷是为了开发 WebAssembly ,因为其的性能 JavaScript 快,而且可以编译成 WebAssembly 供浏览器使用。

其实还有另一个原因,就是合我的专业(物联网应用开发)关联性很强,毕竟是要用到嵌入式开发的。
加上我一直对像 Java 的编程语言,对于我来说,加上java的前程不怎么好了,所以我决定学习新编程语言,希望在学习Rust的同时,可以了解一些底层的原理。

1. 什么是Rust?

Rust 是一种面向系统开发的编程语言,它旨在为操作系统和嵌入式设备提供安全、高性能、可移植的编程环境。可以达到快速、跨平台、低资源占用的目的,这也是我学习Rust的原因。

2. 安装 Rust

我使用的是Windows系统进行Rust开发。选择使用VSCode进行开发,安装Rust插件。

使用 Rustup 进行安装我一开始使用的就是这种开发方式,下载地址:rustup-init x64
因为我还有学习嵌入式Rust开发,所以我还使用了第二种开发方式,Windows 的 Linux 子系统进行开发。

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

3. Hello World

main.rs:

fn main() {
    println!("Hello, world!");
}

运行:

rustc main.rs

在线尝试

4. Hello, Cargo!

Cargo 是 Rust 的构建系统和包管理器。它的功能十分的强大,所以我们使用它进行构建项目。

测试你的 Cargo 版本:

cargo --version

创建一个叫 hello 的项目,并进入该目录:

cargo new hello
cd hello
code .

目录结构如下:

hello
  │ .gitignore
  │ Cargo.lock
  │ Cargo.toml
  │
  ├─src
  │   main.rs
  │
  └─target
      ...

打开src/main.rs可以看到:

fn main() {
    println!("Hello, world!");
}

Cargo 的常用命令:

  • cargo new 创建项目。
  • cargo build 构建项目。
  • cargo run 一步构建并运行项目。
  • cargo check 在不生成二进制文件的情况下构建项目来检查错误。
  • cargo build --release 来优化编译项目

注意:

有别于将构建结果放在与源码相同的目录,Cargo 会将其放到 target/debug 目录。

参考链接

Rust 程序设计语言 简体中文版

标签:Cargo,cargo,rs,--,初识,main,Rust
From: https://www.cnblogs.com/wuqiyang/p/18038323

相关文章

  • [Rust] Cloning the value
    Followingcodehasborrowproblem:#[test]fnmain(){letvec0=vec![22,44,66];letvec1=fill_vec(vec0);assert_eq!(vec0,vec![22,44,66]);assert_eq!(vec1,vec![22,44,66,88]);}fnfill_vec(vec:Vec<i32>)->Vec<i......
  • [Rust] Specifying a function argument can be mutated
    Followingcodehascompileerror:#[test]fnmain(){letvec0=vec![22,44,66];letmutvec1=fill_vec(vec0);assert_eq!(vec1,vec![22,44,66,88]);}fnfill_vec(vec:Vec<i32>)->Vec<i32>{vec.push(88);vec}......
  • [Rust] Write macro
    Defineamacroanduseit:macro_rules!my_macro{()=>{println!("Checkoutmymacro!");};}fnmain(){my_macro!();} Noticethatyouhavetimedefine macrobeforemainfunction.Otherwiseitdoesn'twork. E......
  • Rust 无畏并发
    本文在原文基础上有删减,原文链接无畏并发。目录使用线程同时运行代码使用spawn创建新线程使用join等待所有线程结束将move闭包与线程一同使用使用消息传递在线程间传送数据信道与所有权转移发送多个值并观察接收者的等待通过克隆发送者来创建多个生产者共享状态并发互斥器......
  • [Rust] module with public and private methods
    Methods:modsausage_factory{//privatemethodfnget_secret_recipe()->String{String::from("Ginger")}//publicmethodpubfnmake_sausage(){get_secret_recipe();println!("sausage!&qu......
  • Rust开发日记
    Gettingstarted-RustProgrammingLanguage(rust-lang.org)  安装好配置环境变量Path:%CARGO_HOME%和%RUSTUP_HOME% 建立config文件,不要扩展名。[source.crates-io]registry="https://github.com/rust-lang/crates.io-index"#替换成你偏好的镜像源replace-......
  • 《安富莱嵌入式周报》第333期:F35战斗机软件使用编程语言占比,开源10V基准电源,不断电运
    周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 视频版:https://www.bilibili.com/video/BV1y1421f7ip目录:1、F35战斗机软件使用编程语言占比2、开源10V基准电源,不断电运行一年,误差小于1uV3、资讯(1)苹果开源配置语言Pkl......
  • 基于Rust的Tile-Based游戏开发杂记(01)导入
    什么是Tile-Based游戏?Tile-based游戏是一种使用tile(译为:瓦片,瓷砖)作为基本构建单位来设计游戏关卡、地图或其他视觉元素的游戏类型。在这样的游戏中,游戏世界的背景、地形、环境等都是由一系列预先定义好的小图片(即tiles)拼接而成的网格状结构。每个tile通常代表一个固定的尺寸区域,......
  • [Rust] impl TryFrom and try_into()
    TheTryFromandtry_into()methodsarepartofthe.standardlibaray'sconversiontraits,designedtohandleconversionsbetweentypesinafalliblemanner-thatis,conversionsthatmightfail.Thisisincontrastto`From`and`into()`methods,wh......
  • [Rust] Instantiating Classic, Tuple, and Unit structs
    https://doc.rust-lang.org/book/ch05-01-defining-structs.html structColorClassicStruct{red:i32,green:i32,blue:i32}structColorTupleStruct(i32,i32,i32);#[derive(Debug)]structUnitLikeStruct;#[cfg(test)]modtests{usesu......