
Rust
teamlet
这个作者很懒,什么都没留下…
展开
-
Rust 1.50.0 发布
2021年2月11日 Rust 1.50.0 发布。https://blog.rust-lang.org/2021/02/11/Rust-1.50.0.htmlRustaceans 新年好~!原创 2021-02-12 10:01:33 · 496 阅读 · 0 评论 -
Rust 的功能函数
一、功能函数Rust 可以包括一个或者多个功能函数。Rust 必须包含一个 main 功能函数,main 功能函数是 Rust 语言执行的入口。二、基本函数的定义功能函数的声明使用 fn , fn 后面跟随功能函数的名称,名称后面带 () 括号 。括号后面用 { } 大括号作为功能函数的函数体。没有输入参数和返回值的 main功能函数定义如下: fn main() {} 没有输入和返回值的原创 2016-03-14 20:31:28 · 4021 阅读 · 0 评论 -
Rust 1.7.0 语法基础 sep_token 和 non_special_token
一、分隔符sep_token 指的是分隔符, 是除了 * 和 + 之外的任何符号,通常情况下是使用 , 逗号。例如: 宏的多个参数分隔,下面代码中的逗号就是 sep_token(target: $target:expr, $lvl:expr, $($arg:tt)+) => ({ ... };二、非指定符号non_special_token 是除了分界符之外的任何符号,分界符包原创 2016-04-12 23:03:18 · 11065 阅读 · 0 评论 -
Rust 1.8.0 发布
2016年4月14日 Rust 1.8.0 发布。http://blog.rust-lang.org/2016/04/14/Rust-1.8.html原创 2016-04-25 21:14:25 · 8283 阅读 · 0 评论 -
Rust 1.7.0 macro宏的复用 #[macro_use]的用法
Rust 1.7.0 中的宏使用范围包括三种情况: 第一种情况是宏定义在当前文件中,这个文件可能是 crate 默认的 module,也可能是任意的 module 模块。 第二种情况是宏定义在当前 crate ,但是不是在当前文件中,而是其他 module 模块中。 第三种情况是宏定义在其他的 crate 中,或者其他的 crate 子模块中。使用#[macro_use] 可以使被注解的mod原创 2016-03-26 22:05:00 · 19200 阅读 · 1 评论 -
Rust 1.7.0 匹配器 match 的简单介绍和使用
使用过正则表达式的人应该都知道 matcher ,通过 matcher 匹配器运算正则表达式,完成一系列的匹配规则。在Rust 中 没有 switch 语句,matcher 就是 switch 的一个变形,但比其他语言中的 switch 更强大!一、简单举例说明简单的 matcher 和 if 语句非常类似,如果是简单的条件判断可以用if语句:let n = 5;if n < 0 { pri原创 2016-03-28 21:21:06 · 18259 阅读 · 2 评论 -
Rust 1.7.0 语法基础 attribute
一、语法attribute : '#' '!' ? '[' meta_item ']' ;meta_item : ident [ '=' literal | '(' meta_seq ')' ] ? ;meta_seq : meta_item [ ',' meta_seq ] ? ;二、说明使用Java的人都知道,Java有个 annotation 注解。 Rust 也有注释,名称和C#的原创 2016-04-18 09:53:57 · 8742 阅读 · 0 评论 -
Rust 中用于编译的注释 Attribute
使用Java的人都知道,Java有个 annotation 注释。 Rust 也有注释,名称和C#的注释一样,叫做 attribute。Rust 的attribute 与 Java annotation以及 C# 的attribute注释一样,是在编译阶段用于为编译提供更多描述信息,以便在编译的时候可以根据这些描述做出一些动态的选择和设置。一、Rust 的 attribute 种类Rust 包括两原创 2016-03-19 18:01:54 · 8279 阅读 · 0 评论 -
Rust 1.7.0 语法基础 标识符(ident)和分隔符的约束
一、标识符identifier 是标识符,在Rust语法中简写为 ident 。 ident 是由任意个非空的unicode字符组成。举例:在 attribute 语法中,有meta_item : ident [ '=' literal | '(' meta_seq ')' ] ? ;实际使用如下:#![crate_type = "lib"]#![allow(dead_code)]#![f原创 2016-04-18 19:56:21 · 12604 阅读 · 0 评论 -
Rust 1.9.0 发布
2016年5月26日 Rust 1.9.0 发布。http://blog.rust-lang.org/2016/05/26/Rust-1.9.html原创 2016-06-02 14:57:27 · 8870 阅读 · 1 评论 -
Rust 1.10 发布
2016年7月7日 Rust 1.10 发布。https://blog.rust-lang.org/2016/07/07/Rust-1.10.html原创 2016-07-13 15:40:03 · 6754 阅读 · 0 评论 -
Rust 1.11 发布
2016年08月18日 Rust 1.11 发布。 https://blog.rust-lang.org/2016/08/18/Rust-1.11.html原创 2016-11-07 18:59:44 · 2962 阅读 · 0 评论 -
Rust 1.12 发布
2016年09月29日 Rust 1.12 发布。 https://blog.rust-lang.org/2016/09/29/Rust-1.12.html原创 2016-11-07 19:01:57 · 3167 阅读 · 0 评论 -
Rust 1.12.1 发布
2016年10月20日 Rust 1.12.1 发布。 https://blog.rust-lang.org/2016/10/20/Rust-1.12.1.html原创 2016-11-07 19:03:55 · 3104 阅读 · 0 评论 -
Rust的数据类型和功能函数的返回值
Rust的数据类型包括以下几个分类一、布尔类型Rust 用bool 表示布尔类型,值为 true 或者 false,用于if 等条件判断语句。 let x = true;let y: bool = false; 二、字符类型char 是一个单字符Unicode 标量值。通常使用‘ ’ 包围起来,在Rust中,char 占4个字节,而一些其他语言只占一个字节。 三、数值类型数原创 2016-03-15 16:57:24 · 8174 阅读 · 0 评论 -
Rust 1.7.0的macro宏-语法分析和使用举例
macro 宏的概念在很多语言中都有。通常情况下,宏的机制是在预编译阶段对已经定义的宏进行替换或者 expanded 展开 ,即:把宏按照名称替换成宏的内容。Rust 中的宏,与众不同!Rust中的宏,也是在预编译阶段进行处理。宏不仅仅是替换内容和展开,还可以像功能函数一样,接收参数、调用其他的宏。一、简单的宏宏的名称和功能函数名称很像,只不过在函数名称后面有一个叹号!一个简单的宏定义和调用:mac原创 2016-03-24 19:40:43 · 8331 阅读 · 0 评论 -
Rust 中的变量和赋值
一、基本赋值语句先看一段代码 fn main() { let x = 5;} 这是个赋值语句。赋值语句由 let 开始。二、变量类型Rust 默认的类型是 32位 有符号整形所以,上面语句等同于 fn main() { let x: i32 = 5;} x后面跟:冒号,冒号后面的 i ( signed integer)表示有符号整形,32表示是32位的整形。除了i32原创 2016-03-13 22:37:38 · 4890 阅读 · 0 评论 -
Rust 功能函数的关系、包和模块简介
Rust 功能函数的关系、包和模块简介一、功能函数之间的关系前面看到,一个文件中可以定义多个 function 功能函数,这些功能函数可以被相互使用。程序的入口是main()。在一个文件中,各个功能函数的定义和使用不受功能函数定义的顺序约束。也就是说,不需要像 C 语言一样,在使用一个函数而还没有定义函数之前要有一个声明语句;而像 java 一样,只要声明的功能函数在一个文件内,可以忽略功能函数在文原创 2016-03-17 13:52:43 · 5961 阅读 · 0 评论 -
Rust 中项目构建管理工具 Cargo简介
cargo是Rust内置的项目管理工具。用于Rust 项目的创建、编译、运行,同时对项目的依赖进行管理,自动判断使用的第三方依赖库,进行下载和版本升级。一、查看 cargo 版本安装Rust之后,可以使用cargo --version查看cargo的版本信息。$ cargo --versioncargo 0.8.0-nightly (28a0cbb 2016-01-17)二、创建新项目1、使用原创 2016-03-17 18:32:49 · 6347 阅读 · 0 评论 -
Rust 中包访问策略和module开发策略
一、创建新项目$cargo new my_library 当前路径下包含 Cargo.toml 和 src 目录; src 目录下包含一个 lib.rs 文件。二、不使用module的情况1、修改lib代码$vi src/lib.rs修改代码如下:pub fn public_function() { println!(" my library's `public_function()` c原创 2016-03-17 21:54:34 · 8903 阅读 · 2 评论 -
Rust 使用外部功能函数的几种方式
Rust 提供了代码封装的机制。可以通过crate (等同于Java中的package)创建相对独立的module模块,模块中封装了可以重复使用的功能函数。当创建了自己的 lib 库或者要使用第三方的库的时候(这些库就是一些事先写好的crate)需要将这些库中的module 模块引用到当前的环境中。Rust提供了以下几种引用方式:一、使用 extern crate在使用这些Module的文件中,通过原创 2016-03-18 15:12:12 · 18706 阅读 · 0 评论 -
Rust 中的宏
前面说过println! 是一个宏,宏和功能函数很像,只不过在函数名称后面有一个叹号!来写个宏看看:$mkdir macro_test$cd macro_test$vi main.rs macro_rules! say_hello{ ()=>( println!("Hello"); )}fn main(){ say_hello!()} macro_rul原创 2016-03-13 21:36:54 · 5445 阅读 · 0 评论 -
Rust 的安装和使用举例
一、环境二、安装$curl -sSf https://static.rust-lang.org/rustup.sh | sh Welcome to Rust.This script will download the Rust compiler and its package manager, Cargo, andinstall them to /usr/local. You may in原创 2016-03-09 22:34:54 · 7156 阅读 · 0 评论 -
Rust hello world 语法讲解
Rust的hello world代码如下:fn main() { println!("Hello, world!");}1、fn main()fn main(){ } 这句是在 rust 中定义一个功能函数,main 和C语言、java语言里面的main一样,是执行 rust 程序的入口。这里定义的 main 没有输入参数,也没有返回值。功能函数的函数体使用大括号 { } 2、pr原创 2016-03-10 18:24:56 · 2738 阅读 · 0 评论 -
Rust Attribute的十三个分类包含的注释
Rust 的 Attribute 注释到目前为止(当前版本 rustc 1.7.0 (a5d1e7a59 2016-02-29)一共包括十三个种类。一、只用于 crate 的 attributecrate_name - specify the crate’s crate name.crate_type - see linkage.feature - see compiler features.原创 2016-03-20 12:21:56 · 6299 阅读 · 0 评论 -
Rust 1.7.0 使用#[test]做单元测试
#[test] 是Rust中的注解属性,用于编译环境的注解,类似 java 中的 annotation 和 C# 中的 attribute 。 通过#[test]注解,可以在运行时添加-test 参数进行单元测试。一、基本使用$cargo new attribute_test --bin$cd attribute_test$vi src/main.rsmain.rs 代码如下:fn main原创 2016-04-03 09:28:01 · 10247 阅读 · 0 评论 -
Rust 1.7.0 处理命令行参数
std是 Rust 标准函数库; env 模块提供了处理环境函数。 在使用标准函数库的时候,使用 use 导入相应的 module 。一、直接输出use std::env;fn main(){ for argument in env::args() { println!("*** args = {}", argument); }}$cargo run原创 2016-04-03 11:56:42 · 8291 阅读 · 0 评论 -
Rust的注释
Rust 包括两类,共四种形式的注释。第一类是常规注释,这类注释在编译的时候被忽略掉第一种是行注释,使用双斜线 // // 这是一行注释,一直到行尾第二种是 块注释,使用 /* *//* 这是 一个 块注释*/第二类是文档注释,用于通过工具生成HTML API文档第一种是行注释,用三个斜线 ////// 这是一个用于生成文档的行注释第二种是块注释,用 //! 两个斜线原创 2016-03-11 14:27:25 · 4120 阅读 · 0 评论 -
Rust 格式输出
格式输出由一系列定义在 std::fmt 中的宏提供。包括:format! : 输出格式化的字符串。print! : 输出格式化的字符串到控制台(终端)println!: 增加一个换行,输出格式化的字符串到控制台(终端) println!("Guess the number!"); 输出:Guess the number! println!("{} days", 31); 输出:31 d原创 2016-03-11 15:24:23 · 3656 阅读 · 0 评论 -
Rust 1.7.0 之 #![deny(missing_docs)]
现在我使用的Rust 环境是 V 1.7.0 ,因为在 Rust 的官方网站运行页面上的例子,有些地方执行后的结果和预期的不一样。 可能在 Rust 学习过程中,会遇到 Rust 语言不完善的地方。这里根据实际的语句进行语法和语义的学习。之前提到过 Rust 的注释,包括四种 :(详细内容见 http://blog.youkuaiyun.com/teamlet/article/details/50855777原创 2016-03-23 23:20:33 · 5014 阅读 · 0 评论 -
Rust 提供的 lint 检查项说明
Rust 程序在编译的时候,提供各种类型的检查。 除了系统默认的一些检查,使用者还可以根据自身的需要,修改检查项的默认状态,定制自己的编译检查规则。 比如, #![deny(missing_docs)] 强制要求当前文档必须有针对 crate 的注释。一、lint 检查项列表 标识名称 默认状态 含义说明 box-pointers allow use of owned (B原创 2016-03-24 08:35:48 · 6846 阅读 · 0 评论 -
Rust 的条件语句、表达式与语句和功能函数的返回值
Rust 的条件语句、表达式与语句和功能函数的返回值一、标准语句1、if 基本语句let x = 5;if x == 5 { println!("x is five!");}if 后面 x ==5 是一个表达式 expression 。2、if … else语句let x = 5;if x == 5 { println!("x is five!");} else { pr原创 2016-03-16 22:01:08 · 4873 阅读 · 0 评论