我需要将一个元素&str
转换为char
。
我能够提出这个解决方案(它也适用于String
):
fn main() {
let comma: &str = ",";
let my_char = comma.chars().nth(0).unwrap();
assert_eq!(my_char, ',');
}
有更好或更短的方法吗?
答案 0 :(得分:8)
我无法想到任何巨大的改进,但有一些注意事项:
.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,而第二个是常规的{ {1}}后跟U + 0301组合◌)。