ifif letmatchif 表达式Rust 中的 if 表达式基本就是如下几种形式:// 形式 1if expr1 {}// 形式 2if expr1 {}else {}// 形式 3if expr1 {}else if expr2 { // else if 可多重}else {}相对于 C 系语言,Rust 的 if 表达式的显著特点是:判断条件不用小括号括起来;它是表达式,而不是语句。
Rust 代码文件中,通常我们可以看到 3 种注释。行注释文档注释模块注释行注释// 后的,直到行尾,都属于注释,不会影响程序的行为。// 创建一个绑定let x = 5;let y = 6; // 创建另一个绑定文档注释文档注释使用 ///,一般用于函数或结构体(字段)的说明,置于要说明的对象上方。文档注释内部可使用markdown格式的标记语法,可用于 rustdoc 工具的自动文档提取。
Rust 是多范式语言,当然支持命令式编程风格。本章讲解 Rust 中的几种基本程序结构。
曾几何时,对于使用惯了C/C++语言的猿们来说,项目代码的组织与管理绝对是一场噩梦。为了解决C/C++项目的管理问题,猿神们想尽了各种办法,开发出了各种五花八门的项目管理工具,从一开始的automake到后来的cmake、qmake等等,但结果并不如人意,往往是解决了一些问题,却引入了更多的问题,C/C++猿们经常会陷入在掌握语言本身的同时,还要掌握复杂的构建工具语法的窘境。
输入输出是人机交互的一种方式。最常见的输入输出是标准输入输出和文件输入输出(当然还有数据库输入输出,本节不讨论这部分)。标准输入标准输入也叫作控制台输入,是常见输入的一种。例子1:use std::io;fn read_input() -> io::Result<()> { let mut input = String::new(); try!(io::stdin().read_line(&mut input)); println!
注释在 Rust 里面注释分成两种,行注释和块注释。它的形式和 C 语言是一样的。两种注释分别是:行注释使用 // 放在注释前面。比如:// I love Rust, but I hate Rustc.块注释分别使用/*和*/包裹需要注释的内容。比如:/* W-Cat 是个大胖猫,N-Cat 是个高度近视猫。*/文档Rust 自带有文档功能的注释,分别是///和//!。
特性与接口为了描述类型可以实现的抽象接口 (abstract interface),Rust引入了特性 (trait) 来定义函数类型签名 (function type signature):trait HasArea { fn area(&self) -> f64;}struct Circle { x: f64, y: f64, radius: f64,}impl HasArea for Circle { fn area(&self) -> f64 { std::f64::consts::PI * (self.
函数要声明一个函数,需要使用关键字fn,后面跟上函数名,比如fn add_one(x: i32) -> i32 { x + 1}其中函数参数的类型不能省略,可以有多个参数,但是最多只能返回一个值,提前返回使用return关键字。Rust编译器会对未使用的函数提出警告,可以使用属性#[allow(dead_code)]禁用无效代码检查。
IfIf是分支 (branch) 的一种特殊形式,也可以使用else和else if。与C语言不同的是,逻辑条件不需要用小括号括起来,但是条件后面必须跟一个代码块。Rust中的if是一个表达式 (expression),可以赋给一个变量:let x = 5;let y = if x == 5 { 10 } else { 15 };
结构体结构体 (struct) 是一种记录类型,所包含的每个域 (field) 都有一个名称。每个结构体也都有一个名称,通常以大写字母开头,使用驼峰命名法。元组结构体 (tuple struct) 是由元组和结构体混合构成,元组结构体有名称,但是它的域没有。当元组结构体只有一个域时,称为新类型 (newtype)。没有任何域的结构体,称为类单元结构体 (unit-like struct)。
数组和动态数组数组 arrayRust 使用数组存储相同类型的数据集。[T; N]表示一个拥有 T 类型,N 个元素的数组。数组的大小是固定。例子:fn main() { let mut array: [i32; 3] = [0; 3]; array[1] = 1; array[2] = 2; assert_eq!([1, 2], &array[1..]); // This loop prints: 0 1 2 for x in &array { println!("{} ", x);
变量绑定Rust 通过 let 关键字进行变量绑定。fn main() { let a1 = 5; let a2:i32 = 5; assert_eq!(a1, a2); //let 绑定 整数变量默认类型推断是 i32 let b1:u32 = 5; //assert_eq!(a1, b1); //去掉上面的注释会报错,因为类型不匹配 //errer: mismatched types}这里的 assert_eq!
HelloWorld按照编程语言的传统,学习第一门编程语言的第一个程序都是打印 Hello World!下面根据我们的步骤创建 Rust 的 Hello World!程序:下面的命令操作,如果没有特别说明,都是在shell下运行。本文为了简单统一,所有例子都在 win10 的 powershell 下运行,所有命令都运行在ps:标识符之后创建一个 Doing 目录和 helloworld.
本章的目的在于快速上手(Quickstart),对Rust语言建立初步的印象。前面的章节中,我们已经安装好了Rust,配置好了编辑器,相信你一定已经跃跃欲试了。注意: 本章的一些概念只需要大概了解就行,后续的章节将会有详细的讲解,但是本章的例子请务必亲自手敲并运行一遍。下面,让我们开始动手写Rust程序吧!ps:本章原始章节由 ee0703 书写的。
spacemacs,是一个给vimer的Emacs。简介spacemacs是一个专门给那些习惯vim的操作,同时又向往emacs的扩展能力的人。它非常适合我这种折腾过vim,配置过emacs的人,但同时也欢迎任何没有基础的新人使用。简单来说,它是一个开箱即用的Emacs!这对一个比很多人年龄都大的软件来说是一件极其不容易的事情。
本文是使用VisualRust和VS GDB Debugger / VisualGDB 完成在VisualStudio中,编辑和调试Rust程序。安装Rust, Cargo首先需要下载Rust, 下载地址https://www.rust-lang.org/downloads.html这里一定要下windows GNU ABI的版本, 因为我们要用GDB来调试.另外,机器上也需要安装Visual Studio2013或2015。
Sublime Text是一款非常有名的文本编辑器,其本身也具备强大的插件机制。通过配置各种插件可以在使用Sublime Text编辑rust代码时获得更加良好的支持。本文主要展示在已经预装rust的Windows环境下的安装,如果您还没有安装rust,请先参照本书的安装章节安装rust。安装Sublime Text3安装请在 Sublime Text3官网上选择适合当前机器版本的Sublime Text版本进行下载和安装。
本文是rust的Atom编辑器配置。横向对比一下,不得不说,Atom无论在易用性还是界面上都比前辈们要好的很多,对于Rust的配置,也是基本上可以做到开箱即用。虽然本文独占一小节,但是其实能写的东西也就了了。自行配置使用tokamak自行配置准备工作首先,你需要一个可执行的rustc编译器,一个cargo程序,一个已经编译好的racer程序和一份已经解压好的rust源码。
VS Code 是微软出的一款开源代码编辑器,秉承了微软在IDE领域的一惯优秀基因,是一款潜力相当大的编辑器/IDE。VScode 目前也对 Rust 也有良好的支持。下载 VScode请打开官网 https://code.visualstudio.com/ 下载编辑器。依赖如本章第一节所述,准备好 racer,rust 源代码,rustfmt,rls 这四样东西,并且配置好相应的环境变量,此不赘述。
本节介绍 Emacs (Version 24) 的 Rust 配置,假设你已经安装好了 Emacs,并且有使用 Emacs 的经验。具体的安装和使用说明,见网上相关文档,在此不赘述。另外,本节的例子是在 Mac OS 上,在 Linux 上面基本一样。Windows的Emacs用户仅作参考。简介Emacs 的 rust-mode 提供了语法高亮显示和 elisp 函数,可以围绕 Rust 函数定义移动光标。
关注时代Java