当前位置: 首页 > news >正文

第一章-Rust入门

Rust 简介

Rust 是一种强类型的静态编程语言,它可以编写更快、更可靠的软件,兼备高层次的易用性与低层次的控制力。

Rust 具有以下几个特点:

  • 内存安全,且不牺牲性能
  • “编译通过就能正常运行”
  • 令人愉悦的语法和强大的语言特性
  • 优秀且不断增长的生态系统

Rust 用途广泛,比如命令行工具、Web服务、嵌入式设备等。

Rust 程序剖析

在此处我们使用 Cargo 新建一个项目。Cargo 是 Rust 的构建系统和包管理器,大多数的Rust编写者们都使用 Cargo 来管理他们的 Rust 项目。

首先在命令提示符中使用cargo new hello_world来新建一个项目。Cargo 的新建项目文件结构如下图所示:
在这里插入图片描述
其中,Cargo.toml文件是Cargo配置文件,文件中的内容如下所示:
在这里插入图片描述
其中 [package]中的三行分别表示“项目名称”、“项目的版本”以及“Rust版本”。dependencies用于罗列项目依赖的代码包,在Rust中,这种包被称为crates

项目代码置于/src目录下,在其中的main.rs文件中写下如下代码:

// crate (以后深入)
// -- library crate (只有1个)
// -- binary crate (任意多个)
use std::io::stdin;
// Prelude:每一个Rust程序自动引入的标准库内容fn main() {let mut msg = String::new();println!("Please enter message:");stdin().read_line(&mut msg).unwrap();println!("message is {}",msg);
}

对该代码从上到下依次解释:

  1. 首先我们需要std::io库提供输入/输出功能。io库来自于标准库,标准库也被称为std。导入的std标准库,正如前文所言,也算是一个crate,而crate分为library cratebinary crate,前者在一个Rust程序中只有1个,后者则可以有任意多个。现在的这个main.rs就属于binary crate。关于crate的更加深入的介绍,经过后面的学习后会专门进行补充。
  2. 在Rust中,为了方便编写,将标准库中常用的若干个库整理出来,形成 预导入 (Prelude)内容,prelude无需显式引入,但是不属于prelude的就需要使用use语句进行显式引入。 io库并不属于prelude,因此此处需要显式引入。
  3. main函数是Rust程序的入口,被花括号括起来的是函数体。函数体中的第一行表示新建一个字符串变量;第二行是输出指定文本;第三行是读取用户的整行输入;第四行对结果进行格式化输出。具体的内容经过后面的学习会专门补充,当前先知晓各行代码的作用。

在命令行使用cargo run命令运行该代码。首先会提示我们进行输入,在输入文本之后按回车,就可以输出我们输入的文本:
在这里插入图片描述

小结

本文从一个简单的 Rust 程序入手,知晓了Rust程序的标准库导入、命令行交互以及main函数,相当于简单窥见了一下Rust语言,希望可以保持下去!继续学习!
程序的标准库导入、命令行交互以及main函数,相当于简单窥见了一下Rust语言,希望可以保持下去!继续学习!

http://www.xdnf.cn/news/288469.html

相关文章:

  • 音频感知动画新纪元:Sonic让你的作品更生动
  • PE文件结构(导出表)
  • 专家系统的推理流程深度解析
  • Java SE(8)——继承
  • 虚拟dom是什么,他有什么好处
  • 深度学习里程碑:AlexNet 架构解析与核心技术详解
  • 【深度学习|学习笔记】Deep Belief Network(DBN,深度置信网络)起源、原理、发展和应用(附代码)
  • 【KWDB 创作者计划】基于 ESP32 + KWDB 的智能环境监测系统实战
  • 高可用架构设计——故障响应
  • Red Hat6.4环境下搭建DHCP服务器
  • 第六章 流量特征分析-蚁剑流量分析(玄机靶场系列)
  • MCP原理详解及实战案例(动嘴出UI稿、3D建模)
  • Linux系统安装PaddleDetection
  • 基于CBOW模型的词向量训练实战:从原理到PyTorch实现
  • 使用AI 将文本转成视频 工具 介绍
  • 实验-数字电路设计2-复用器和七段数码管(数字逻辑)
  • 在Ubuntu系统中安装桌面环境
  • 路由器详细讲解
  • Docker —— 隔离的基本操作(1)
  • SpringCloud GateWay网关
  • 排序用法(Arrays.sort)
  • AI笔记-1
  • Qwen2_5-Omni-3B:支持视频、音频、图像和文本的全能AI,可在本地运行
  • 【Flask】ORM模型以及数据库迁移的两种方法(flask-migrate、Alembic)
  • 【全队项目】智能学术海报生成系统PosterGenius--前后端系统介绍
  • Vuex使用指南:状态管理
  • Leetcode:回文链表
  • GGD独立站的优势
  • 备战蓝桥杯国赛第一天-atcoder-beginner-contest404
  • Python异步编程进阶:深入探索asyncio高级特性