作为字符传染媒介的英语字母表在铁锈

Joh*_*son 3 rust

标题说明了一切.我想生成字母作为字符向量.我确实考虑过简单地创建一个97-122的范围并将其转换为字符,但我希望有一个更好看的方式,比如Python string.ascii_lower.

生成的矢量或字符串应具有字符az.

Chr*_*gan 12

硬编码这种事情是有道理的,因为它可以是一个编译常量,这对效率很有帮助.

static ASCII_LOWER: [char; 26] = [
    'a', 'b', 'c', 'd', 'e', 
    'f', 'g', 'h', 'i', 'j', 
    'k', 'l', 'm', 'n', 'o',
    'p', 'q', 'r', 's', 't', 
    'u', 'v', 'w', 'x', 'y', 
    'z',
];
Run Code Online (Sandbox Code Playgroud)

(决定是否使用staticconst.)

这几乎就是Python在string.py中的作用:

lowercase = 'abcdefghijklmnopqrstuvwxyz'
# ...
ascii_lowercase = lowercase
Run Code Online (Sandbox Code Playgroud)


Ale*_*ges 6

老问题,但你可以创建一系列字符,所以

('a'..='z').into_iter().collect::<Vec<char>>()


Gar*_*cia 5

收集 a 的字符str似乎不是一个坏主意......

let alphabet: Vec<char> = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".chars().collect();
Run Code Online (Sandbox Code Playgroud)

  • 除了现在你现在需要堆分配(`Vec`),它是一个运行时计算而不是编译时计算。 (3认同)
  • @Shepmaster 当然,`static [char]`可能是一个更好的方法,但他说他的字母表可以增长(?),所以也许这可以帮助...... (2认同)