网站性能优化怎么做,在线视频制作,望城经济建设开区门户网站,网站平台建设论文程序设计实践课上水一篇ing
来源#xff1a;rust基础入门-1.初识rust-酷程网 (kucoding.com)
rust作为一名新兴语言#xff0c;与go又有些许不同#xff0c;因为它的目标是对标系统级开发#xff0c;也就是C、C这两位在编程界的位置。比如我们最常用的windows系统#x…程序设计实践课上水一篇ing
来源rust基础入门-1.初识rust-酷程网 (kucoding.com)
rust作为一名新兴语言与go又有些许不同因为它的目标是对标系统级开发也就是C、C这两位在编程界的位置。比如我们最常用的windows系统就是用C/C语言开发的也正因如此我们才能用C在VS中非常方便的调用win API函数。
涉及到底层需要控制的细节就会越多rust试图通过简便语法、便利包管理、安全可靠等良好特性脱颖而出。
目前rust语言最大的缺点是生态还不够完善。
比如当你想要用rust写GUI程序就很麻烦因为官方目前还没有推出GUI库但这并非是无法解决的rust同样意识到了这个问题所以它提供了简便的方式让你可以直接在代码中调用C语言开发的库。
这意味着只要是用C语言开发的库你就能用rust语言调用它进行开发。
比如你可以使用rust绑定C开发的FLTK、GTK等GUI库就可以进行开发GUI程序了当然也有正在发展的库比如egui、iced、tauri等等。个人目前最推荐的是Tauri前提需要会web前端初识Tauri。
而rust带来的代码安全、便捷的开发又是C语言所无法比拟的随着Rust生态的不断完善会取代很大一部分C/C的份额不过想要彻底将C/C取代段时间来看还是有点不现实的比如windows、linux、mac三大操作系统以及各种C/C开源库的代码量巨大。
先学C/C语言再来学rust初识C。
Rust简介 Rust语言在2006年作为 Mozilla 员工 Graydon Hoare 的私人项目出现而 Mozilla 于 2009 年开始赞助这个项目。第一个有版本号的 Rust 编译器于2012 年 1 月发布。Rust 1.0 是第一个稳定版本于 2015年5月15日发布。 主要有以下几点
内存安全
Rust 中的所有内存访问都经过了编译器的严格检查并且在运行时不会出现空指针异常或数据竞争等问题。这意味着 Rust代码具有更高的可靠性和安全性可以避免常见的安全漏洞。而C语言则时常需要担心指针、内存问题尤其是在大型项目中非常容易因此出现各种各样的Bug。
高效性能
Rust具有与 C 和 C 相当的性能并采用了现代语言的特性和设计理念如智能指针、闭包和模式匹配等。这使得 Rust很适合编写高性能、低延迟的系统级应用程序和库。
并发性
Rust的所有权系统和借用规则使其易于编写线程安全的代码即使在多线程环境下也可以保持高效率和可靠性。C/C中则完全需要自己进行控制。
社区支持
Rust拥有活跃的社区在crates上提供了许多开源库、工具和框架可以大幅度提升开发效率。
C/C虽然学习的人很多但却几乎没有官方的、活跃的社区可以供大家交流都是在各搞各的。
统一包管理
C/C中最让人诟病的便是包管理了想要用一个包还需要自己下载、安装、配置等等。
而Rust则直接提供了一个统一的包管理程序只需要写一行代码就能自动为你下载配置好你所需要的一切并且还提供对应的文档使用起来非常方便
综上能看出Rust的优势。
Python有一个统一的包管理程序pip可以很方便的下载各种第三方包而不需要像C那样自己配置。而一旦学会了Rust即使是作为较为底层的开发人员我们同样也能享受到这种便利了。
这是学习C/C所无法想象的虽然目前有一个vcpkg包管理库很不错但这毕竟不是标准委员会推出的而是微软带头组织的一个开源项目如果不会科学上网中国几乎也无法使用。
也无法使用。
安装Rust编译器
与C/C一样Rust也是一门编译型语言也就是说Rust的代码必须要先编译成为二进制程序之后才能运行。比如window系统中我们最常看到的.exe二进制可执行程序。 而python则是解释性语言无需编译只要有python的解释器就能一行一行的解释代码然后执行这同样也是影响python速度的一大原因。 一般在浏览器中直接搜索Rust出现的第一个就是Rust的官网了不过我这里也还是放一下它的官网地址可以直接点击查看Rust
然后点击“马上开始” 之后就是下载Rust的安装器由于目前一般都是64位的电脑所以选择第二个即可 下载后点击运行这个程序等待其安装完毕。
由于我原本就安装了VS2022所以它并没有提示我安装任何东西如果你没有安装VS则可能要你安装上方提示的Microsoft C生成工具确认安装即可。
安装完成后进入控制台运行命令cargo --version 能打印出版本则说明安装成功了不会进入控制台的可以参考文章程序员必懂的常识
第一次使用你可能就会觉得有些疑惑明明安装的是Rust这里怎么是Cargo命令呢
这一点可以看官网说明 简单来说就是Cargo是Rust语言的包管理软件后面我们开发Rust时使用的也基本都是这个命令。
第一个Rust程序 基础语法http://t.csdnimg.cn/9ronF
我们可以通过命令cargo new projectName来创建一个Rust项目。
比如运行cargo new hello-world 然后它就会为我们在当前目录中生成一个项目文件夹 这里简单对其介绍一下 .git这是一个隐藏文件夹用于git软件实现版本管理学习rust期间一般用不着不用管。 src这是存放代码的地方以后我们写的rust代码就放在这个文件夹里面。 .gitignore这同样是git使用的用于忽略哪些类型文件不进行版本管理一般同样不用管 Cargo.toml :这个文件就很重要了cargo作为rust的包管理程序就是通过这个文件知道你这个项目中需要哪些依赖库的
注意git并不是rust的一部分而是一个所有语言通用的版本控制工具比如知名的github便是用的git进行版本管理不会的可以参考git详解。
用记事本打开Cargo.toml就能看到下面这样的内容 对于你想要用到的库直接写在[dependencies]项的下面即可后面我会再对其进行详细介绍。
然后来到src这个存放rust代码的目录里面 这里面默认有一个main.rs文件其中后缀.rs便是rust的简写这个文件是rust项目中不可或缺的因为它将作为整个项目的入口文件。
注意不可更改这个文件的名称否则后面的编译将会直接失败
同样的我们仍然可以用记事本打开它 这里写的是一个函数 fnrust中的关键字即为function的简写代表后面跟着的是一个函数。 main: 这个函数的名称这里不可更改因为这是程序的入口函数程序将从这个函数开始顺序执行内部的代码。 ()与前面的函数名、fn关键字、后面紧跟的{}组成一个完整的函数签名最简单的函数就是fn name(){} {}函数体即这个函数要执行的代码比如这里填写的是println!(Hello, world!);,就是说要打印出 “hello world”这个字符串。
println!是一个rust中的宏用于简化我们输出一个字符串到控制台的步骤。
如果你学过C/C、python、java等等其它语言前期学习过程中可以直接把它当作一个print函数即可只是要注意它的后面先有一个!、然后才是()。
这里同样注意每一个语句的结尾用的;不用则会报错。
现在回到控制台进入这个文件夹然后来运行这段代码试一试运行代码的命令为cargo run 然后就可以看到它成功运行并打印出了Hello World!字符串。
rust一上来就给我们生成了这么多文件发现rust这样做的好处在后面开发项目时。
前面我们说了rust是一个编译型的语言所以会编译成二进制后次才能运行我们可以在下面的目录中找到这个生成的exe程序 不过直接点击它运行是不行的因为前面的代码中我们只写了一个打印字符串的代码打印完程序就结束了所以你只能看到一个黑影闪过后面我们会想办法解决这个问题。
上面提到的这个cargo run命令即为编译并运行当前项目的意思
可如果我只想编译不运行 使用命令cargo build其默认构建的是Debug版本即可调试版本 直观的来说就是生成的exe程序会稍微比较大。 也可以构建Release版本使用命令cargo build --release 这个命令生成的可执行文件会较小 如果你还是觉得它比较大那么我们还可以使用一些工具来进一步压缩它可以让它只有几十kb IDE环境
从上面我们可以看到即使是只用记事本也是可以开发的但那实在是太麻烦了所以我们需要一个IDE环境就像VS那样有代码提示可以极大提高我们的开发效率。
个人推荐VSCode这款编辑器它也是目前最受欢迎的一个编辑器。
可以通过以下链接进行前往官网下载vs code 可以选择自己合适的版本下载安装即可上图箭头指示的是我安装的版本x64 系统安装
但其实各个版本区别不大。 注意下载安装完成后 可能需要重启一下电脑才能继续进行下面的步骤。 在控制台中进入这个文件夹然后输入code . 这个code命令是vs code提供的命令用于让VSCode这个软件打开一个文件夹。
而后面紧跟的 .指代的就是当前目录意思就是用VScode打开当前目录目录相关介绍可以参考文章路径详解
然后你就能看到这个rust项目项目文件夹在VSCode中被打开了 但VScode只是一个编辑器所以我们还需要安装rust插件来打造这个编辑器成为一个IDE方法也很简单。
点击左边的插件选项然后在上面输入rust进行搜索然后安装rust-analyzer即可 这样就完成了rust的开发环境的配置现在当你输出前几个字符时就会自动弹出代码提示 这时你只需要按Enter键就可以自动帮你填充代码。
并且运行代码的方式也变简单了只需要点击main函数上面的按钮就可以直接运行 同时你也可以直接点击Debug进入调试状态 不会调试的可以参考文章调试。
初识包管理
配置好IDE后我们再来试一下rust官网提供的一个示例来看看rust的包管理有多好用。
比如我们想要在终端打印出下面这个图案 这里就用到了ferris-says这个库首先来到前面提到的Cargo.toml文件然后在[dependencies]项添加一下这个库 后面的数字是这个库的版本号CtrlS保存后vscode就会自动给我们拉取这个库包到本地。
你可能也注意到了不知道什么时候项目文件夹中多了一个Cargo.lock文件。 这个文件用于记录我们当前项目用到的所有库以及依赖是由cargo自动管理的我们无需操心。 现在来到代码中让我们来使用一下这个库
use ferris_says::say; // from the previous step
use std::io::{stdout, BufWriter};fn main() {let stdout stdout();let message String::from(Hello https://www.kucoding.com);let width message.chars().count();let mut writer BufWriter::new(stdout.lock());say(message.as_bytes(), width, mut writer).unwrap();
}这一小段代码就涉及到了rust中相当多的概念先不看这段代码的逻辑你可以自己随意更改这段代码里面的字符串Hello https://www.kucoding.com
然后运行上面这段代码就能在终端看到输出的图案了。
而这个库的下载安装位置默认为当前用户文件夹的.Cargo文件夹中 至于库代码上层的这个文件夹则是代表着仓库名你的可能是github之类的这个不一定相同。
以下几个命令需要记忆 cargo new新建一个rust项目cargo run 直接运行代码cargo build 只编译代码不运行默认编译的为debug版本cargo build --release编译为release版本 逆向基础http://t.csdnimg.cn/Xi0IC
rust逆向http://t.csdnimg.cn/kXH0J
以及一系列文章