本文介绍: 内存安全: 在编译阶段就保证了内存的安全;无畏并发: 由于更优秀的安全性,所以在进行并发编程时更加无所畏惧,因为所有的不安全因素都会在编译时被发现快速:由于零成本的抽象和其他优秀特性,Rust具有惊人的运行速度和性能;相比之下, 一些高级语言如Ruby和Python虽然可以保证内存安全, 但是却很难做到高并发高性能。一些系统编程语言如C语言和C++, 虽然可以获得高性能,以及一定程度上的高并发,但是却总是被内存安全问题所困扰。

Rust编程入门

为什么学习Rust

我本人是一个DevOps工程师,并不是专职的开发人员,但需要了解各种各样的语言基本知识特性以便在不同的项目中帮助开发人员设计软件架构部署流程以及进行错误排查调试。但是对任何新生的优秀事物保持足够的好奇心,往往会给我们更多的机会,并产生新的思想火花,让我们先走马观花的看一看Rust是什么样子,说不定你就会对它产生浓厚的兴趣。

如果你决定了要学习这门语言,那么至少应该运用你所学的知识进行一些小的练习,甚至用它来写一个自己项目。由于Rust学习曲线还是比较陡峭,因此在实践中总结并进步是十分重要的在学习了Rust的基础后,为了巩固知识提高熟练度,我也用Rust写了一个轻量功能完善的Webhook工具: Rusthook,供大家一起参考学习。请添加图片描述如上图所示,也许你的代码通过编译都需要花费很大的力气,而这就要求你对Rust的基础知识掌握牢固,否则这样陡峭的学习曲线很容易让初学者从入门到放弃。

Rust的简介及历史

Rust是一门系统编程语言,它提供了一些优秀的特性

相比之下, 一些高级语言如Ruby和Python虽然可以保证内存安全, 但是却很难做到高并发高性能。 一些系统编程语言如C语言和C++, 虽然可以获得高性能,以及一定程度上的高并发,但是却总是被内存安全问题所困扰。

Rust起源于2006年,最初是Mozilla公司的一名雇员Graydon Hoare个人项目。 Mozilla公司从2009年开始赞助Rust的开发, 并于2015年首次发布了Rust的1.0版本。因此, Rust至今(2023)已经有8年的历史了,并且还有9年的孵化期。相比之下, C++已经有38年的历史, 而C语言已经有48年的历史了。

Mozilla赞助Rust的原因正是因为受够了C++的内存安全问题,而想要寻找一种更好语言开发Firefox浏览器。 2017年发布的Firefox quantum就是用Rust重写的, 它的运行速度是以前版本的两倍多,而且使用中出现的bug大大的减少了。目前在Firefox代码中约有150多万行的代码是Rust编写的。

Cargo

Cargo一个非常好用的Rust工具,在我们学习并使用Rust的过程中,Cargo会贯穿始终。

Cargo集成了其他各种工具的优点和功能,如npm, pip, bundler, make.

创建一个Rust项目

假设你已经安装好了Rust, 现在你就可以用Cargo命令创建一个Rust项目。

cargo new hello

将会看到下面的输出目录结构
在这里插入图片描述
可以看到, Cargo为我们创建了一个名为hello目录里面包含

现在我们来看一下Cargo.toml这个项目配置文件

[Package]
name = "hello"      
version = "0.1.0"
authors = ["Nathan Stocks <nathan.stocks@gmail.com>"]
edition = "2018"

[dependencies]

其中:

再来看一下main.rs内容

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

Cargo已经为我们编写了一个Hello world示例代码,我们可以直接运行
在这里插入图片描述
可以看到, Cargo会先编译代码,并运行执行结果,在终端打印Hello, world! 如果我们再运行一次代码,将会出现下面的输出请添加图片描述
由于我们的代码没有变化,所以第二次运行输出中可以看到Cargo并没有代码进行重新编译。

当我们运行上述命令时,实际上Cargo已经构建了一个可执行文件运行,它的位置是:

target/debug/hello

这个目录下会存放Cargo构建的所有产物,因此在.gitignore文件应该加入这个目录,以防这些构建产物提交git仓库中。我们可以直接运行这个可执行文件, 得到与cargo run同样的结果
请添加图片描述
我们注意到, hello这个可执行文件debug目录下, 这是因为默认情况下, Cargo会以debug模式编译我们的代码,如果想不以debug模式编译,则需要加上--release参数, 请添加图片描述
这样的话,大多数代码执行的速度会更快,但编译的时间可能会更长,构建产物会保存在target/release/目录下。

小结

本章介绍了Rust语言的历史和主要特性,以及如何用Cargo进行一个Demo项目的创建和运行。下节会介绍Rust语言的一些基础概念及使用,如变量作用域等。

原文地址:https://blog.csdn.net/m0_37904728/article/details/134570973

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_15485.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注