乱读天书, 不求甚解
周祎骏的个人云笔记
Toggle navigation
乱读天书, 不求甚解
主页
Linux:系统配置
Linux:用户管理
Linux:优化排错
Linux:进程调度
Linux:文件系统
Linux:网络
Linux:系统服务
Linux:安全
Linux:内核
容器:Docker
容器:containerd
容器编排:Kubernetes
IAC:Terraform
大数据:Hadoop
大数据:Zookeeper
大数据:Hbase
消息队列:rsyslog
消息队列:kafka
数据库:MySQL
数据库:MongoDB
搜索引擎:Elasticsearch
时序数据库:OpenTSDB
网站服务:Nginx
编程:Bash
编程:Perl
编程:Python
编程:C
编程:JAVA
编程:Rust
版本控制:gitlab
知识管理:docusaurus
常用小工具
关于我
标签
Rust 06.02 生命周期标注
2023-02-05 10:10:59
32
0
0
admin
> 生命周期标注用于告诉编译器引用所指向的变量的生命周期,用于在编译时检查有没有悬垂指针的可能。 生命周期标注不会改变任何引用的生命周期长度。 ```rust &i32 //引用 &'a i32 //生命周期为a的引用 &'a mut i32 //生命周期为a的可变引用 let s: &'static str = "xxx"; // 静态生命周期,永远可用 fn longer<'a>(s1: &'a str, s2: &'a str) -> &'a str { if s2.len() > s1.len() { s2 } else { s1 } } fn main() { let r; { let s1 = "rust"; let s2 = "ecmascript"; r = longer(s1, s2); println!("{} is longer", r); } } ``` **生命周期目前有三种规则** * 每一个引用参数都会有自己的生命周期参数 * 当只存在一个生命周期参数时,这个生命周期会赋予所有输出的生命周期参数 * 拥有多个生命周期参数而且其中一个是&self 或者&mut self 时,self 的生命周期参数会赋予所有输出的生命周期参数
上一篇:
Rust 06.01 trait
下一篇:
Rust 07.00 指针
文档导航