并不是每个 Rust 中的概念都有系统编程或者计算机科学中的相关背景,所以我们增加一些可能是陌生术语的解释。元数元数是指函数或操作需要的参数个数。let x = (2, 3); let y = (4, 6); let z = (8, 2, 6);在上述例子中,x 和 y 的元数为2。 z 的元数是3。抽象语法树当编译器编译程序的时候,它会一下事情。其中一个就是将程序中的代码段组成抽象语法树,简称“AST”。
注意:内敛函数永远不具有稳定接口,所以最好直接使用libcore的稳定接口,而不是直接使用内敛函数。使用 rust-intrinsic ABI 可以使得内敛函数类似于外部函数接口方法一样去引入。比如,如果一段程序希望不依赖于上下文,同时又希望能够在不同类型见切换,然后高效的执行指针运算,那么这段代码可以通过如下的声明来引入这些方法。
Rust 以其安全性为重点,为不同的类型之间的转换提供了不同的方法。首先,as 用于数据类型安全转换 。相反,transmute 允许类型之间的任意转换,是 Rust 的最危险的特征!asas 关键字可以做基本的转换:let x: i32 = 5;let y = x as i64;然而,它只允许某些类型的转换:let a = [0u8, 0u8, 0u8, 0u8];let b = a as u32;
If let 允许你把 if 和 let 结合到一起,来减少某些类型的模式匹配所需的开销。例如,有某种 Option<T>。如果它是 Some<T>,我们希望在它上面调用一个函数,如果不是,则什么也不做。就像下面这样:match option {Some(x) => { foo(x) },None => {},}在这里我们不一定非要使用匹配,例如,我们可以使用 ifif option.is_some() {let x = option.
对于任何程序员来说,字符串是一个重要的且必须掌握的概念。由于其系统专注的点不同,Rust 的字符串处理系统有点不同于其他计算机语言,。无论何时,当你有一个可变大小的数据结构,事情可能会变得棘手,还有,字符串是一种能重设大小的数据结构。也就是说,Rust 的字符串的工作方式也不同于其他的系统语言,如 C 语言。让我们深入细节。