У меня есть несколько регулярных выражений, которые определены во время выполнения, и я хотел бы сделать их глобальными переменными.
Чтобы дать вам представление, работает следующий код:
use regex::Regex; // 1.1.5
fn main() {
let RE = Regex::new(r"hello (\w+)!").unwrap();
let text = "hello bob!\nhello sue!\nhello world!\n";
for cap in RE.captures_iter(text) {
println!("your name is: {}", &cap[1]);
}
}
Но я бы хотел, чтобы это было примерно так:
use regex::Regex; // 1.1.5
static RE: Regex = Regex::new(r"hello (\w+)!").unwrap();
fn main() {
let text = "hello bob!\nhello sue!\nhello world!\n";
for cap in RE.captures_iter(text) {
println!("your name is: {}", &cap[1]);
}
}
Однако я получаю следующую ошибку:
error[E0015]: calls in statics are limited to constant functions, tuple structs and tuple variants
--> src/main.rs:3:20
|
3 | static RE: Regex = Regex::new(r"hello (\w+)!").unwrap();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Значит ли это, что мне нужен ночной Rust для того, чтобы сделать эти переменные глобальными, или есть другой способ сделать это?