'a&'a T&'a mut Tfn<'a>(x: &'a T) -> &'a Tstruct<'a> StructName<'a> { field: &'a T }impl<'a> StructName<'a> { fn method(&'a self) -> &'a T }impl<'a> Trait for StructName<'a> { fn method(&'a self) -> &'a T }fn<'a, 'b>(x: &'a T, y: &'b T) -> &'a Tfn<'a>(x: &'a T) -> &'a strfn<'a>(x: &'a T) -> &'a [T]fn<'a>(x: &'a T) -> &'a dyn Traitfn<'a>(x: &'a T) -> impl Trait + 'afn<'a>(x: &'a T) -> Box<dyn Trait + 'a>fn<'a>(x: &'a T) -> &'a [u8]fn<'a>(x: &'a T) -> &'a mut [u8]fn<'a>(x: &'a T) -> Option<&'a T>fn<'a>(x: &'a T) -> Result<&'a T, E>fn<'a>(x: &'a T) -> &'a strfn<'a>(x: &'a T) -> &'a Stringfn<'a>(x: &'a T) -> &'a Vec<T>fn<'a>(x: &'a T) -> &'a mut Vec<T>fn<'a>(x: &'a T) -> &'a HashMap<K, V>fn<'a>(x: &'a T) -> &'a mut HashMap<K, V>fn<'a>(x: &'a T) -> &'a BTreeMap<K, V>fn<'a>(x: &'a T) -> &'a mut BTreeMap<K, V>fn<'a>(x: &'a T) -> &'a HashSet<T>fn<'a>(x: &'a T) -> &'a mut HashSet<T>fn<'a>(x: &'a T) -> &'a BTreeSet<T>fn<'a>(x: &'a T) -> &'a mut BTreeSet<T>fn<'a>(x: &'a T) -> &'a Rc<T>fn<'a>(x: &'a T) -> &'a Arc<T>fn<'a>(x: &'a T) -> &'a Cell<T>fn<'a>(x: &'a T) -> &'a RefCell<T>fn<'a>(x: &'a T) -> &'a Mutex<T>fn<'a>(x: &'a T) -> &'a RwLock<T>fn<'a>(x: &'a T) -> &'a AtomicBoolfn<'a>(x: &'a T) -> &'a AtomicIsizefn<'a>(x: &'a T) -> &'a AtomicUsizefn<'a>(x: &'a T) -> &'a AtomicI32fn<'a>(x: &'a T) -> &'a AtomicU32fn<'a>(x: &'a T) -> &'a AtomicI64fn<'a>(x: &'a T) -> &'a AtomicU64fn<'a>(x: &'a T) -> &'a AtomicPtr<T>fn<'a>(x: &'a T) -> &'a AtomicRefCell<T>fn<'a>(x: &'a T) -> &'a PhantomData<T>fn<'a>(x: &'a T) -> &'a PhantomPinnedfn<'a>(x: &'a T) -> &'a Pin<Box<T>>fn<'a>(x: &'a T) -> &'a Pin<Rc<T>>fn<'a>(x: &'a T) -> &'a Pin<Arc<T>>fn<'a>(x: &'a T) -> &'a Pin<RefCell<T>>
以下是 Rust 生命周期的用法及其解释:
1. 'a
生命周期参数 'a 用于标识引用的生命周期。
fn example<'a>(x: &'a i32) -> &'a i32 {
x
}2. &'a T
带有生命周期参数的不可变引用。
fn example<'a>(x: &'a i32) -> &'a i32 {
x
}3. &'a mut T
带有生命周期参数的可变引用。
fn example<'a>(x: &'a mut i32) -> &'a mut i32 {
x
}4. fn<'a>(x: &'a T) -> &'a T
函数接受和返回带有生命周期参数的引用。
fn example<'a>(x: &'a i32) -> &'a i32 {
x
}5. struct<'a> StructName<'a> { field: &'a T }
结构体中的生命周期参数。
struct Example<'a> {
field: &'a i32,
}6. impl<'a> StructName<'a> { fn method(&'a self) -> &'a T }
结构体方法中的生命周期参数。
impl<'a> Example<'a> {
fn get_field(&'a self) -> &'a i32 {
self.field
}
}7. impl<'a> Trait for StructName<'a> { fn method(&'a self) -> &'a T }
实现特征时使用生命周期参数。
impl<'a> Display for Example<'a> {
fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
write!(f, "{}", self.field)
}
}8. fn<'a, 'b>(x: &'a T, y: &'b T) -> &'a T
函数接受多个生命周期参数。
fn example<'a, 'b>(x: &'a i32, y: &'b i32) -> &'a i32 {
x
}9. fn<'a>(x: &'a T) -> &'a str
函数返回带有生命周期参数的字符串切片。
fn example<'a>(x: &'a str) -> &'a str {
x
}10. fn<'a>(x: &'a T) -> &'a [T]
函数返回带有生命周期参数的切片。
fn example<'a>(x: &'a [i32]) -> &'a [i32] {
x
}11. fn<'a>(x: &'a T) -> &'a dyn Trait
函数返回带有生命周期参数的特征对象。
fn example<'a>(x: &'a dyn Display) -> &'a dyn Display {
x
}12. fn<'a>(x: &'a T) -> impl Trait + 'a
函数返回实现特征的类型,并带有生命周期参数。
fn example<'a>(x: &'a i32) -> impl Display + 'a {
x
}13. fn<'a>(x: &'a T) -> Box<dyn Trait + 'a>
函数返回带有生命周期参数的特征对象的 Box。
fn example<'a>(x: &'a i32) -> Box<dyn Display + 'a> {
Box::new(x)
}14. fn<'a>(x: &'a T) -> &'a [u8]
函数返回带有生命周期参数的字节切片。
fn example<'a>(x: &'a [u8]) -> &'a [u8] {
x
}15. fn<'a>(x: &'a T) -> &'a mut [u8]
函数返回带有生命周期参数的可变字节切片。
fn example<'a>(x: &'a mut [u8]) -> &'a mut [u8] {
x
}16. fn<'a>(x: &'a T) -> Option<&'a T>
函数返回带有生命周期参数的 Option。
fn example<'a>(x: &'a i32) -> Option<&'a i32> {
Some(x)
}17. fn<'a>(x: &'a T) -> Result<&'a T, E>
函数返回带有生命周期参数的 Result。
fn example<'a>(x: &'a i32) -> Result<&'a i32, &'static str> {
Ok(x)
}18. fn<'a>(x: &'a T) -> &'a str
函数返回带有生命周期参数的字符串切片。
fn example<'a>(x: &'a str) -> &'a str {
x
}19. fn<'a>(x: &'a T) -> &'a String
函数返回带有生命周期参数的字符串引用。
fn example<'a>(x: &'a String) -> &'a String {
x
}20. fn<'a>(x: &'a T) -> &'a Vec<T>
函数返回带有生命周期参数的向量引用。
fn example<'a>(x: &'a Vec<i32>) -> &'a Vec<i32> {
x
}21. fn<'a>(x: &'a T) -> &'a mut Vec<T>
函数返回带有生命周期参数的可变向量引用。
fn example<'a>(x: &'a mut Vec<i32>) -> &'a mut Vec<i32> {
x
}22. fn<'a>(x: &'a T) -> &'a HashMap<K, V>
函数返回带有生命周期参数的哈希映射引用。
fn example<'a, K, V>(x: &'a HashMap<K, V>) -> &'a HashMap<K, V> {
x
}23. fn<'a>(x: &'a T) -> &'a mut HashMap<K, V>
函数返回带有生命周期参数的可变哈希映射引用。
fn example<'a, K, V>(x: &'a mut HashMap<K, V>) -> &'a mut HashMap<K, V> {
x
}24. fn<'a>(x: &'a T) -> &'a BTreeMap<K, V>
函数返回带有生命周期参数的 B 树映射引用。
fn example<'a, K, V>(x: &'a BTreeMap<K, V>) -> &'a BTreeMap<K, V> {
x
}25. fn<'a>(x: &'a T) -> &'a mut BTreeMap<K, V>
函数返回带有生命周期参数的可变 B 树映射引用。
fn example<'a, K, V>(x: &'a mut BTreeMap<K, V>) -> &'a mut BTreeMap<K, V> {
x
}26. fn<'a>(x: &'a T) -> &'a HashSet<T>
函数返回带有生命周期参数的哈希集合引用。
fn example<'a, T>(x: &'a HashSet<T>) -> &'a HashSet<T> {
x
}27. fn<'a>(x: &'a T) -> &'a mut HashSet<T>
函数返回带有生命周期参数的可变哈希集合引用。
fn example<'a, T>(x: &'a mut HashSet<T>) -> &'a mut HashSet<T> {
x
}28. fn<'a>(x: &'a T) -> &'a BTreeSet<T>
函数返回带有生命周期参数的 B 树集合引用。
fn example<'a, T>(x: &'a BTreeSet<T>) -> &'a BTreeSet<T> {
x
}29. fn<'a>(x: &'a T) -> &'a mut BTreeSet<T>
函数返回带有生命周期参数的可变 B 树集合引用。
fn example<'a, T>(x: &'a mut BTreeSet<T>) -> &'a mut BTreeSet<T> {
x
}30. fn<'a>(x: &'a T) -> &'a Rc<T>
函数返回带有生命周期参数的 Rc 引用。
fn example<'a, T>(x: &'a Rc<T>) -> &'a Rc<T> {
x
}31. fn<'a>(x: &'a T) -> &'a Arc<T>
函数返回带有生命周期参数的 Arc 引用。
fn example<'a, T>(x: &'a Arc<T>) -> &'a Arc<T> {
x
}32. fn<'a>(x: &'a T) -> &'a Cell<T>
函数返回带有生命周期参数的 Cell 引用。
fn example<'a, T>(x: &'a Cell<T>) -> &'a Cell<T> {
x
}33. fn<'a>(x: &'a T) -> &'a RefCell<T>
函数返回带有生命周期参数的 RefCell 引用。
fn example<'a, T>(x: &'a RefCell<T>) -> &'a RefCell<T> {
x
}34. fn<'a>(x: &'a T) -> &'a Mutex<T>
函数返回带有生命周期参数的 Mutex 引用。
fn example<'a, T>(x: &'a Mutex<T>) -> &'a Mutex<T> {
x
}35. fn<'a>(x: &'a T) -> &'a RwLock<T>
函数返回带有生命周期参数的 RwLock 引用。
fn example<'a, T>(x: &'a RwLock<T>) -> &'a RwLock<T> {
x
}36. fn<'a>(x: &'a T) -> &'a AtomicBool
函数返回带有生命周期参数的 AtomicBool 引用。
fn example<'a>(x: &'a AtomicBool) -> &'a AtomicBool {
x
}37. fn<'a>(x: &'a T) -> &'a AtomicIsize
函数返回带有生命周期参数的 AtomicIsize 引用。
fn example<'a>(x: &'a AtomicIsize) -> &'a AtomicIsize {
x
}