【发布时间】:2014-09-24 00:37:09
【问题描述】:
我一直遇到这个问题,我不太明白为什么不能编译这个:
fn foo(bar: &'static str) -> Foo {
let caps_off = bar.to_ascii_lower().as_slice();
...
}
错误:borrowed value does not live long enough
我有点理解这里的错误,但我不知道任何其他方法可以实现这一点。
我正在尝试将我的str 转换为小写,然后将其转换回str 类型。看起来很简单。
我在这里做错了什么以及如何解决它?
完整代码:
use std::collections::HashMap;
use std::ascii::StrAsciiExt;
struct Foo;
fn foo(bar: &'static str) -> Foo {
let caps_off_ = bar.to_ascii_lower();
let caps_off = caps_off_.as_slice();
let mut my_foos:HashMap<&'static str, Foo> = HashMap::new();
my_foos.insert("hi", Foo);
*my_foos.find(&caps_off).clone().unwrap()
}
【问题讨论】:
标签: rust