我正在尝试向 a 添加一个项目Vec<T>,调用一个函数并等待它。我仍然对所有权和借用规则耿耿于怀。我明白以下内容不起作用:
pub async fn begin_session(&mut self, stream: TcpStream) {
let session = Session::new(stream);
self.sessions.push(session);
session.start_receiver().await; // obviously, won't work
}
Run Code Online (Sandbox Code Playgroud)
我在下面提出的解决方案对我来说似乎并不理想(或线程安全):
pub async fn begin_session(&mut self, stream: TcpStream) {
let session = Session::new(stream);
self.sessions.push(session);
let session = self.sessions.last().unwrap();
session.start_receiver().await; // That works.
}
Run Code Online (Sandbox Code Playgroud)
是否有一个函数Vec<T>既执行 apush(T)又返回T?
rust ×1