Rust 入门 (一)

Rust 语言的介绍、特性什么的都不说了,如有需要,请自行了解。这里我们直接进去正题。

一、开发环境

mac或linux系统,在命令行安装

curl https://sh.rustup.rs -sSf | sh
安装过程中会询问安装方式,我直接选择的第一种默认方式,第二种是自定义,第三种是取消安装

然后会发现在自己家目录下有一个 .cargo 的隐藏文件夹,里面有四个文件 bin env git registry
1.env 文件设置了 Rust 的环境变量,
2.bin 文件夹下是相关的工具 cargo cargo-miri rust-gdb rustdoc cargo-clippy clippy-driver rust-lldb rustfmt cargo-fmt rls rustc rustup

更新到最新版本(rust会6个星期更新一个版本)

rustup upddate

查看版本

rustc --version

cargo --version

卸载

rustup self uninstall

Windows 系统上就不说了,直接下载 Rust安装包rustup-init.exe 安装即可。

tips: 如果想查看文档,可以使用如下命令:

rustup doc

二、Hello World

学习语言的老规矩,二话不多说,先写一个Hello World

新建一个 hello.rs 文件,写入如下内容:

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

然后编译运行即可

rustc hello.rs  // 编译,会编译出一个名为hello的可执行文件
./hello // 运行,会把"Hello, world!"打印出来

做一个简单的说明,fn 是方法声明的关键字,main 是主函数的名字,rust 程序的入口,即 rust 程序是从 main 方法开始运行的。方法名字后面通常会跟着一对小括号 (),然后是大括号 {} 包裹着函数体(方法的参数和返回值暂且不说)。本文的函数体就是打印 Hello, World! 字符串,而 println! 则是 rust 中的宏,宏指令后文介绍,现在只需要知道宏指令后面需要紧跟着感叹号 ! 就可以了。

三、Cargo

Cargo 作为 Rust 语言编译代码和包的管理工具。大多数 Rust 程序都使用这个工具来管理他们的 Rust 项目,因为 Cargo 帮我们做了大量的工作,比如:编译代码、下载代码需要的依赖,并且编译这些依赖。

简单的 Rust 项目不需要任何依赖,比如我们前面写的那个。所以我们可以只使用 Cargo 编译代码部分的功能,但是当你写复杂项目的时候,就可以在项目中使用 Cargo 来更加容易地添加依赖。

下面我们正式学习这个工具,在上文安装 Rust 的时候就已经安装好了这个工具,在此,我们可以查看一下它的版本号:

cargo --version

使用 Cargo 创建一个新的项目,项目名叫 hello_cargo

cargo new hello_cargo && cd hello_cargo

这条命令创建了一个 Cargo.toml 文件和一个 src 文件夹(git相关的就先不说了),Cargo.toml 文件如下:

[package]
name = "hello_cargo"
version = "0.1.0"
authors = ["shanpengfei <[email protected]>"]
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
  1. [package] 下的四行是项目的基础信息,Cargo 会自动获取项目的名字、版本、作者和 rust 的发行版本。
  2. [dependencies] 则是存放项目需要的依赖。Rust 的包是映射成 crates 的,而当前项目不需要任何其它依赖,后文再仔细介绍。

src 文件夹下则是一个 main.rs 文件,里面存放的代码是

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

使用 Cargo 编译项目

cargo build

这里会生成一个 Cargo.lock 文件和一个 target 文件夹。Cargo.lock 文件用于锁定项目依赖的版本,而 target 文件夹则是编译生成的结果。然后运行项目项目

./target/debug/hello_cargo
Hello, world! 

其实上面两条命令可以使用 run 命令代替

cargo run
    Finished dev [unoptimized + debuginfo] target(s) in 0.01s
     Running `target/debug/hello_cargo`
Hello, world!

在写代码的时候,我们通常不需要执行代码,只需要确保代码是可编译的,此时可以使用 check 命令来检查:

cargo check
    Checking hello_cargo v0.1.0 (/Users/shanpengfei/work/rust-work-space/study/hello_cargo)
    Finished dev [unoptimized + debuginfo] target(s) in 0.12s

这个命令比 build 命令的速度快,只有当项目需要运行的时候才使用 build 命令。

结尾

最基础的入门级内容先介绍这么多,下一篇文章使用 rust 做一个小游戏玩一玩。

欢迎阅读单鹏飞的学习笔记

原文地址:https://www.cnblogs.com/shanpengfei/p/11939182.html

时间: 2024-10-11 08:37:02

Rust 入门 (一)的相关文章

Rust之开始入门&lt;2&gt;

"Hello,World" 既然你已经安装了Rust,那么让我们来写第一个程序.在屏幕上打印出"Hello,World"一般是学习一门编程语言要写的第一个程序. 我们首先要做的就是创建一个存放代码的文件.在桌面上创建一个存放Rust项目的目录,然后在里面创建第一个工程文件夹"Hello_World".代码如下: <code class="hljs ruby has-numbering" style="displ

全栈程序员的新玩具Rust(二)基本代码入门

先来看这个简单的程序 1.奇怪的关键字 fn=function 函数 mut=mutability 变异性,反义词是immutability 不变性. 2.变量定义 这和其它语言不太一样,普通的语言里变量默认为可变,如果不可变则要标注为readonly 有些语言压根没有不可变这个设计,所有变量都可变. rust中,let定义的变量为immutability ,不可变,类似于其它语言中的readonly 所以图中的x 为 只读变量,不可变 图中y可以赋值 并且rust 允许覆盖定义,图中x定义了两

传教文:Rust 大法好

Rust 是一门设计得非常不错的语言.我在 Twitter 上经常提起它.现在发布了 1.0 Alpha 测试版,是时候开始安利了! 不好意思图贴错了, 简介 Rust is a systems programming language that runs blazingly fast, prevents almost all crashes, and eliminates data races. 这是网站上的宣传语.作为一个系统级编程语言 Rust 并没有 .NET 或者 JVM 那样厚厚的

Rust这种新型的语言注定火不起来,功能太强大(特性太多),还不如用成熟稳定强大的C/C++,而且生态不行、所以恶性循环

这种新型的语言注定火不起来,功能太强大(特性太多),还不如用成熟稳定强大的C/C++,,而Golang足够简单,入门快,编译快,性能也强悍,解决了服务端开发人员的痛点,,注定被大多数人接受... golang 针对的方向和他不同,虽然是同一时期的,但我觉得不太适合用来比较 拿 Go 来类比,不是比功能定位,而是比被接受的容易度,其他方面都很OK 且 容易上手的语言后来者居上的可能性非常大,,,如果从功能上对比的话,Go 主要定位解决分布式系统,服务器应用开发,主要竞争对手是 Java.Pytho

为什么我说Rust是靠谱的编程语言

为什么我说Rust是靠谱的编程语言 作者:Liigo(庄晓立) 时间:2015年5月16日 原创链接:http://blog.csdn.net/liigo/article/details/45757123 版权声明:未经作者许可不得转载:授权转载需注明出处. 序言:本文试图帮您解答"我要不要(投入大量时间和精力)学习Rust语言?"这个问题.作者尽量较少的谈及Rust语言本身,反而尝试从Rust语言周边入手,长时间.大范围.多角度地考察,研判Rust语言是否靠谱,并给出尽可能客观的理由

Rust 1.2.0 翻译官网总结(一)

介绍 Rust 编程语言 欢迎学习本教程!本教程将教你如何使用 Rust 编程语言.Rust 是一门强调安全.性能和并发性的系统编程语言.它为了达到这几个目的,甚至没有一个垃圾收集器.这也使 Rust 能够应用到其他语言做不到的地方:嵌入到其他语言,有指定空间和时间需求的程序,写底层代码(如设备驱动程序和操作系统).针对当前的其他编程语言,Rust 做到了没有运行时(Runtime),没有数据竞争. Rust 也致力于实现"零成本抽象",尽管这些抽象给人的感觉像一个高级的语言.即使是这

Rust语言Ownership,Reference和Lifetime详解

Ownership References and Borrowing Lifetime 1. Ownership rust的ownership系统是它区别与其它语言的最主要的特征.只有理解了ownership系统,才能真正算是入门. Rust的绑定变量有一个属性:获得它所绑定资源的所有权.这意味着当绑定变量超出作用域时,它所绑定资源的资源就会释放. fn foo() { let v = vec![1, 2, 3]; } 绑定变量v的作用域是函数foo的函数体,创建v时,先会在栈上分配空间来保存v

区块链快速入门(八)——以太坊

区块链快速入门(八)--以太坊 一.以太坊简介 以太坊(Ethereum)项目的最初目标是打造一个运行智能合约的平台(Platform for Smart Contract),支持图灵完备的应用,按照智能合约的约定逻辑自动执行,理想情况下将不存在故障停机.审查.欺诈以及第三方干预等问题.以太坊平台目前支持Golang.C++.Python等多种语言实现的客户端.由于核心实现上基于比特币网络的核心思想进行了拓展,因此在很多设计特性上都与比特币网络十分类似.基于以太坊项目,以太坊团队目前运营了一条公

grpc,protoc, protoc-gen-go,rust

Rust 与服务端编程的碎碎念https://zhuanlan.zhihu.com/p/30028047 GRPC:golang使用protobuf https://segmentfault.com/a/1190000009277748 Protobuf 相关资料: http://www.cnblogs.com/ghj1976/p/4587736.html go helloworld: http://www.cnblogs.com/happyframework/p/3321954.htmlgrp