将一个元素字符串转换为char

时间:2015-10-29 03:54:19

标签: rust

我需要将一个元素&str转换为char

我能够提出这个解决方案(它也适用于String):

fn main() {
    let comma: &str = ",";
    let my_char = comma.chars().nth(0).unwrap();

    assert_eq!(my_char, ',');
}

有更好或更短的方法吗?

1 个答案:

答案 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组合◌)。

相关问题