The English alphabet as a vector of characters in

2020-04-08 07:56发布

The title says it all. I want to generate the alphabet as a vector of characters. I did consider simply creating a range of 97-122 and converting it to characters, but I was hoping there would be a nicer looking way, such as Python's string.ascii_lower.

The resulting vector or string should have the characters a-z.

标签: rust
2条回答
Anthone
2楼-- · 2020-04-08 08:11

Collecting the characters of a str doesn't seem like a bad idea...

let alphabet: Vec<char> = "abcdefghijklmnopqrstuvwxyzABCDEFGIJKLMNOPQRSTUVWXYZ".chars().collect();
查看更多
家丑人穷心不美
3楼-- · 2020-04-08 08:28

Hard-coding this sort of thing makes sense, as it can then be a compiled constant, which is great for efficiency.

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',
];

(Decide for yourself whether to use static or const.)

This is pretty much how Python does it in string.py:

lowercase = 'abcdefghijklmnopqrstuvwxyz'
# ...
ascii_lowercase = lowercase
查看更多
登录 后发表回答