我想获取它name是否为空或设置新值。我怎样才能做到这一点?
#[derive(Debug)]
struct App {
name: Option<String>,
age: i32,
}
impl App {
fn get_name<'a>(&'a mut self) -> &'a Option<String> {
match self.name {
Some(_) => &self.name,
None => {
self.name = Some(String::from("234"));
&self.name
}
}
}
}
fn main() {
let mut app = App {
name: None,
age: 10,
};
println!("{:?} and name is {}", &app, &app.get_name().unwrap())
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
#[derive(Debug)]
struct App {
name: Option<String>,
age: i32,
}
impl App {
fn get_name<'a>(&'a mut self) -> …Run Code Online (Sandbox Code Playgroud) 如何在闭包中调用方法?get_access_token方法可以基于以下内容设置新的访问令牌self.get_base_url():
fn fetch_access_token(_base_url: &String) -> String {
String::new()
}
fn get_env_url() -> String {
String::new()
}
pub struct App {
pub base_url: Option<String>,
pub access_token: Option<String>,
}
impl App {
pub fn new() -> App {
App {
base_url: None,
access_token: None,
}
}
pub fn get_base_url(&mut self) -> &String {
self.base_url.get_or_insert_with(|| get_env_url())
}
pub fn get_access_token(&mut self) -> &String {
self.access_token
.get_or_insert_with(|| fetch_access_token(self.get_base_url()))
}
}
fn main() {}
Run Code Online (Sandbox Code Playgroud)
错误:
锈2015
fn fetch_access_token(_base_url: &String) -> String …Run Code Online (Sandbox Code Playgroud)