我需要将一个元素&str
转换为char
。我能够提出这个解决方案,该解决方案也适用于String
:
fn main() {
let comma: &str = ",";
let my_char = comma.chars().nth(0).unwrap();
assert_eq!(my_char, ',');
}
有更好或更短的方法吗?
我没有想到的巨大改进,但有几点注意事项:
.nth(0)
为.next()
,基本上可以完成相同的操作。.unwrap()
,您不应该使用,因为如果字符串为空,则您的程序将崩溃。.expect("msg")
,这会使用户更好地了解您为什么惊慌。结合在一起:
fn main() {
let comma: &str = ",";
let my_char = comma.chars().next().expect("string is empty");
assert_eq!(my_char, ',');
}
唯一要注意的另一件事是谈论“一个元素”是有点危险的事情。例如,"é"
具有一个char
,但"é"
具有两个(第一个是预组合的U + 00E9,而第二个是常规的,e
然后是组合了◌́的U + 0301)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句