2510rs,rust清单3
控制流
while x {}
//式x为`真`时循环运行.loop {}
//无限循环直到中断.可用`break x`产生值.for x in collection {}
//`循环迭代器`的语法糖.collection.into_iter()
//首先有效地按`正确`的`迭代器`转换任何`IntoIterator`类型.iterator.next()
//在`正确`的`迭代器`上,则`x=next()`直到用尽(第一个`None`).if x {} else {}
//如果式为`真`,则条件分支.'label: {}
//块标签,可与`中断(break)`一起使用以退出此块'label: loop {}
//类似的循环标签,对`嵌套循环`中的控制流很有用.break
//中断式,以退出标签块或循环.break 'label x
//退出名为`标签`的块或循环,并按其值设置x.break 'label
//相同,但不产生值.break x
//使`最内层循环`值为x值(仅在实际循环中).continue
//继续式到此循环的下个`循环迭代`.continue 'label
//相同,但不是该循环,而是用"标签"标签的外部循环.
x
//如果x是`错误`或`None`,则返回并传播.x.await
//取未来,poll,产生的语法糖,仅用在`异步`内部.x.into_future()
//首先有效地按适当的`未来`转换任何`IntoFuture`类型.future.poll()//在适当的`未来`上,如果`Poll::Pending`则`poll()`并`yield flow`.return x
//从`fn`提前返回.更惯用的是以表达式结束.{ return }
//在正常的`{}`块中返回退出外围的函数.|| { return }
//在闭包内返回退出,即闭包是`s.fn`.async { return }
//在异步内部,返回仅退出`{}`,即`异步{}`是`s.fn`.f()
//调用可调用的`f`(如,函数,闭包,`函数指针`,`Fn`等).x.f()
//调用成员`fn`,要求f取`self`,`&self,...`作为`第一个参数`.X::f(x)
//除非`impl Copy for X{}`,与`x.f()`相同,只能调用f一次.X::f(&x)
//与`x.f()`相同.X::f(&mut x)
//与`x.f()`相同.S::f(&x)
//如果解引用`X`到`S`,则与`x.f()`相同,即`x.f()`找到S的方法.T::f(&x)
//如果`X impl T`,则与`x.f()`相同,即在域内,`x.f()`找T的方法.X::f()
//调用关联函数,如`X::new()`.<X as T>::f()
//调用为X实现的`T::f()`特征方法.
组织代码
mod m {}
//定义一个模块,从`{}`内部取定义.↓
mod m;
//定义一个模块,从`m.rs`或`m/mod.rs`取定义.↓
a::b
//`a(mod,enum,...)`中b元素的`名字空间`路径.::b
//在仓库根或`ext. prelude;'`中搜索全局路径.crate::b
//在`箱`的`根目录`中搜索`b`.self::b
//在当前模块中搜索`b`.super::b
//在父模块中搜索`b`.use a::b;
//在此域中`直接使用`b`,不再需要`a`.use a::{b, c};
//相同,但将b和c纳入域.
use a::b as x;
//将b纳入域,但叫它`x`,如按`E`使用`std::error::Error`.use a::b as _;
//将`匿名`纳入域,对名字冲突的特征很有用.use a::*;
//从a中引进所有,只推荐在a是预加载中.pub use a::b;
//将`a::b`纳入域,并从此处重新导出.pub T
//对T,"如果父路径是公开的,则公开"的可见性.pub(crate) T
//最多在当前仓库中可见.pub(super) T
//最多在父中可见.pub(self) T
//最多在当前模块中可见(默认,与`nopub`相同).pub(in a::b) T
//最多在祖先`a::b`中可见.extern crate a;
//声明对外部`箱`的依赖;只需使用`a::b`.
extern "C" {}
//从`FFI`声明`外部依赖`和`ABI`(如,`"C"`).
extern "C" fn f() {}
//给`FFI`定义要使用`ABI`导出的函数(如,`"C"`).