【发布时间】:2014-12-29 13:55:21
【问题描述】:
我需要帮助来理解生命周期说明符。我想我明白了生命的概念。我看了Memory, Ownership and Lifetimes。我只是想如果我能通过这个小的example 工作,它可能会帮助我了解生命周期的语法。迄今为止,我感到困惑的主题。
use std::collections::HashMap;
fn main() {
pub struct User<'a> {
pub name: & 'a str
}
impl <'a>User<'a> {
pub fn new(uname: & 'a str, pwd: & 'a str) -> User {
User{name: uname}
}
}
pub struct ChatRoom<'a> {
pub name: & 'a str,
pub users: HashMap<& 'a str, User>
}
impl <'a>ChatRoom<'a> {
pub fn new(name: &str) -> ChatRoom {
let users = HashMap::new();
ChatRoom {name: name, users: users}
}
pub fn join(&mut self, user: User) {
self.users.insert(user.name, user);
}
}
let mut room = ChatRoom::new("Test");
let user = User::new("bender","123");
room.join(user);
}
【问题讨论】:
-
一些琐碎的常见风格:
impl<'a> Foo<'a>、&'a str、User { name: uname }。