2510rs,rust清单5

生命期,高阶项

cpp 复制代码
for<'a>
//高阶边界的标签.

 trait T: for<'a> R<'a> {}
//任何`impl T`的S也必须在任何`生命期`内满足`R`.

fn(&'a u8)
//`函数指针`类型,保存`a`特定`生命期`的`fn`可调用.

for<'a> fn(&'a u8)
//高阶`类型`持有`fn`调用.带任意生命期,上面的子类型.

 fn(&'_ u8)
//相同;自动展开为`for<'a>fn(&'a u8)`类型.

 fn(&u8)
//相同;自动展开为`for<'a>fn(&'a u8)`类型.
dyn for<'a> Fn(&'a u8)

//`高阶`(特征对象)类型,`工作方式`类似上面的`fn`.

 dyn Fn(&'_ u8)
//相同;自动展开为`dyn for<'a>Fn(&'a u8)`类型.

 dyn Fn(&u8)
//相同;自动展开为`dyn for<'a>Fn(&'a u8)`类型.

实现特征

cpp 复制代码
impl<'a> T for fn(&'a u8) {}
//`调用`接受特定的`<'a`的`T`实现特征的`fn`.指针.
impl T for for<'a> fn(&'a u8) {}
//`调用`接受任意的实现`T`特征的`fn`.指针.

 impl T for fn(&u8) {}
//同样,简短的版本.

串或符

cpp 复制代码
"..."
//串字面`,,UTF-8&'static str`,支持以下转义:

 "\n\r\t\0\\"
//常见转义,如,`"\n"`变成换行符.

 "\x36"
//`ASCIIe`.直到`7f`,如,`"\x36"`将变为`6`.

 "\u{7fff}"
//`统一e`.最多6位数字,如,`"\u{7fff}"`变为翿.
r"..."
//原始串字面.`UTF-8`,但不会解释上面的任何转义.

r#"..."#
//原始串字面`UTF-8`,但也可包含`"`.`#`数可能会`有所不同`.

c"..."
//C串字面,一个`NUL`结尾的静态`CStr`.

cr"...", cr#"..."#
//原始C串字面,类似上面组合.

b"..."
//字节串字面,仅构造`ASCII&'static[u8;N]`.

br"...", br#"..."#
//原始字节串字面,组合类似上面.
b'x'
//`美标`字节字面,单个`u8`字节.

'  '
//字符字面,固定4字节`统一符`.

文档

cpp 复制代码
/ / /
//外部文档注释,在`ty.,traits,fn`上使用这些,...
/ / !
//内部文档注释,主要在文件顶部.
/ /
//行注释,使用这些来记录代码流或内部.  

/ *  ... * /
//`块`注释`

/ * * ... * /
//外部块文档注释
/ * ! ... * /
//内部块文档注释

杂项

cpp 复制代码
!
//总是空不存在类型.

 fn f() -> ! {}
//永不返回的函数;如`让 x:u8=f();`,与任意类型兼容.

 fn f() -> Result<(), !> {}
//必须返回`结果`,但发出`不可能有错误`的函数.

 fn f(x: !) {}
//有但不能调用的函数.不很有用.

_
//未命名的`通配符`变量绑定,如`|x,_|{}`.

 let _ = x;
//未命名赋值.是无操作的,不会移出x或保留域!

 _ = x;
//你可在没有`let`时将任何内容赋值给`_`,即`_=ignore_rval();`

_x
//不会发出未使用的变量警告的变量绑定.

1_234_567
//视觉清晰的数字分隔符.

1_u8
//数字字面的类型限定符(还有`i8,u16`等).

0xBEEF, 0o777, 0b1001
//十六进制`(0x)`,八进制`(0o)`和`二进制``(0b)`整数字面.

12.3e4, 1E-8
//浮点字面的科学记数法.

r#foo
//版本兼容的原始标识.
'r#a
//版本兼容的原始生命期标签.
x;
//语句终止符,如式.
相关推荐
k4m7v2pz13 小时前
Rust 长跑守护进程日志治理:切分、时区与结构化
开发语言·后端·rust·日志系统·日志轮转·ndjson
k4m7v2pz13 小时前
Rust 高并发 WebSocket 连接管理:从线程地狱到 tokio 异步架构
websocket·架构·rust·并发编程·tokio
k4m7v2pz14 小时前
Rust 规则热重载实战:用 serde_json + notify 告别重启
开发语言·rust·json·规则引擎·notify·热重载
rustfs15 小时前
GitLab 如何与 RustFS 集成?
分布式·rust·gitlab
龙智DevSecOps解决方案16 小时前
Perforce QAC + Klocwork 视频教程:Rust 与 C/C++ 混合项目静态分析演示
rust·静态分析·perforce·klocwork·qac·代码合规
程序员爱钓鱼16 小时前
Rust 生命周期常见错误详解:看懂编译器报错并正确修复
前端·后端·rust
特立独行的猫a18 小时前
Windows安装Rust环境 Clang替代GCC MinGW环境LLVM工具链(详细教程)
开发语言·windows·rust·mingw·环境搭建·llvm
红尘散仙1 天前
浏览器不能监听端口、没有文件系统,凭什么能点对点传文件?
rust·webrtc·webassembly
nnerddboy1 天前
Rust教程06:ESP32-rust环境搭建
开发语言·后端·rust
nnerddboy1 天前
Rust教程03:函数,控制流与所有权
开发语言·后端·rust