草庐IT

Rust语言基础(一)

杉菜酱子 2023-05-21 原文

文章目录

安装 Rust

  • 官网:https://www.rust-lang.org/
  • Linux or Mac:
    • curl https://rustup.rs -sSf | sh
  • Windows: 按官网指示操作
  • Windows Subsystem for Linux:
    • curl --proto ‘=https’ --tlsv1.2 -sSf https://sh.rustup.rs | sh

查看是否安装成功

rustc --version

更新与卸载 Rust

  • 更新 Rust
    • rustup update
  • 卸载 Rust
    • rustup self uninstall

本地文档

  • 安装Rust时,会在本地安装文档,可离线浏览
  • 运行rustup doc可在浏览器打开本地文档

开发工具

  • Visual Studio Code
    • Rust 插件
  • Clion(Intellij Idea 系列)
    • Rust 插件

Hello World

新建文件夹 mkdir hello_world
进入文件夹 cd h*
使用 VS Code 打开 code .

编写 Rust 程序

  • 程序文件后缀名:rs
  • 文件命名规范:hello_world.rs
fn main(){
    println!("Hello World");
}

编译与运行 Rust 程序

  • 编译:rustc main.rs
    编译成功了!

    可以看到VS Code 下多了两个文件,分别是main.exe和main.pdb。
  • 运行:
    • Windows:.\main.exe
    • Linux/mac:./main

Rust 程序解剖

  • 定义函数:fn main() { }
    • 没有参数,没有返回值
  • main函数:是每个Rust可执行程序最先运行的代码
  • 打印文本:println!(“Hello,world!”)
    • Rust 的缩进是4个空格,而不是Tab
    • println! 是一个Rust macro(宏)
      • 如果是函数,就没有 !
    • “Hello World”是字符串,它是println! 的参数
    • 此行代码以 ; 结尾

编译和运行是单独的两步

  • 运行 Rust 程序之前必须先编译,命令为:rustc 源文件名
    • rustc main.rs
  • 编译成功后,会先生成一个二进制文件
    • 在 Windows 上还会生成一个 .pdb 文件,里面包含调试信息。
  • Rust 是 ahead-of-time 编译的语言
    • 可以先编译程序,然后把可执行文件交给别人运行(无需安装 Rust)
  • rustc 只适合简单的 Rust 程序…

Hello Cargo

  • cargo 是Rust的构建系统和包管理工具
    • 构建代码、下载依赖的库、构建这些库
  • 安装Rust 时会安装 Cargo
    • cargo --version

使用 Cargo 创建项目

  • 创建项目:cargo new hello_cargo
    • 项目名称也是 hello_cargo
    • 会创建一个新的目录hello_cargo
      • Cargo.toml
      • src 目录
        • main.rs
      • 初始化了一个新的Git仓库 .gitignore
        • 可以使用其他的VCS或不使用VCS:cargo new 时使用 --vcs 这个flag

Cargo.toml

  • TOML(Tom’s Obvious,Minial Language)格式,是Cargo的配置格式
  • [package] 是一个区域标题,表示下方内容是用来配置包(package)的
    • name 项目
    • version 项目版本
    • authors 项目作者
    • edition 使用 Rust 版本
  • [dependencies] 另一个区域的开始,它会列出项目的依赖项
  • 在 Rust 里面,代码的包称作 crate

src/main.rs

  • cargo 生成的main.rs 在 src 目录下
  • 而Cargo.toml 在项目顶层下
  • 源代码都应该在src 目录下
  • 顶层目录可以放置:README、许可信息、配置文件和其他与程序源码无关的文件
  • 如果创建项目时没有使用cargo,也可以把项目转化为使用cargo:
    • 把源代码文件移动到src下
    • 创建Cargo.toml 并填写响相应的配置

构建Cargo 项目

  • cargo build
    • 创建可执行文件:target/debug/hello_cargo 或 target\debug\hello_cargo.exe(Windows)
    • 运行可执行文件:./target/debug/hello_cargo或 .\target\debug\hello_cargo.exe(Windows)
  • 第一次运行cargo build会在顶层目录生成cargo.lock文件
    • 该文件负责追踪项目依赖的精确版本
    • 不需要手动修改该文件

构建和运行cargo 项目

  • cargo run 编译代码 + 执行结果
    • 如果之前编译成功过,并且源代码没有改变,那么就会执行运行二进制文件

cargo check

  • cargo check 检查代码,确保能通过编译,但不产生任何可执行文件
  • cargo check 要比cargo build 快很多
    • 编写代码时可以连续反复使用cargo check 检查代码,提高效率

为发布构建

  • cargo build --release
    • 编译时会进行优化
      • 代码会运行的更快,但编译时间更长
    • 会在target/release 而不是 target/debug 生成可执行文件
  • 两种配置
    • 一个开发
    • 一个正式发布

建议:尽量使用 Cargo。

有关Rust语言基础(一)的更多相关文章

  1. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

    我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

  2. ruby - 寻找通过阅读代码确定编程语言的ruby gem? - 2

    几个月前,我读了一篇关于ruby​​gem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:

  3. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  4. 7个大一C语言必学的程序 / C语言经典代码大全 - 2

    嗨~大家好,这里是可莉!今天给大家带来的是7个C语言的经典基础代码~那一起往下看下去把【程序一】打印100到200之间的素数#includeintmain(){ inti; for(i=100;i 【程序二】输出乘法口诀表#includeintmain(){inti;for(i=1;i 【程序三】判断1000年---2000年之间的闰年#includeintmain(){intyear;for(year=1000;year 【程序四】给定两个整形变量的值,将两个值的内容进行交换。这里提供两种方法来进行交换,第一种为创建临时变量来进行交换,第二种是不创建临时变量而直接进行交换。1.创建临时变量来

  5. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  6. 软件测试基础 - 2

    Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功

  7. ES基础入门 - 2

    ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear

  8. ruby - 如何保持我不常用的编程语言技能 - 2

    关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭11年前。Improvethisquestion我不经常使用ruby​​-通常它加起来相当于每两个月或更长时间编写一次脚本。我的大部分编程都是使用C++进行的,这与ruby​​有很大不同。由于我与ruby​​之间的差距如此之大,我总是忘记语言的基本方面(比如解析文本文件和其他简单的东西)。我想每天练习一些基本的东西,我想知道是否有一些我可以订阅的网站,并且会向我发送当天的Ruby问题或类似的东西。有人知道这样的站点/Internet服务吗?

  9. ruby-on-rails - 如果特定语言环境中缺少翻译,如何配置 i18n 以使用 en 语言环境? - 2

    如果特定语言环境中缺少翻译,如何配置i18n以使用en语言环境翻译?当前已插入翻译缺失消息。我正在使用RoR3.1。 最佳答案 找到相似的question这里是答案:#application.rb#railswillfallbacktoconfig.i18n.default_localetranslationconfig.i18n.fallbacks=true#railswillfallbacktoen,nomatterwhatissetasconfig.i18n.default_localeconfig.i18n.fallback

  10. ruby-on-rails - 如何通过 URL 更改语言环境? - 2

    在我的双语Rails4应用程序中,我有一个像这样的LocalesController:classLocalesController用户可以通过此表单更改其语言环境:deflocale_switcherform_tagurl_for(:controller=>'locales',:action=>'change_locale'),:method=>'get',:id=>'locale_switcher'doselect_tag'set_locale',options_for_select(LANGUAGES,I18n.locale.to_s)end这有效。但是,目前用户无法通过URL更改

随机推荐