с "hello".
И нашел 2 варианта:
1) преобразовать String к &str и вызвать метод eq_ignore_ascii_case
2) запилить функцию типо
fn is_hello(s: String) -> bool {
let mut iter = s.chars();
iter.nth(0) == Some('h') || iter.nth(0) == Some('H')
&& iter.nth(1) == Some('e') || iter.nth(1) == Some('E')
...
&& iter.nth(5) == None
}
Какой из вариантов будет эффективней?
вот такое вообще дорого ппц, оно всегда будет с первого элемента до nth итерироваться
если точно уверен что там только аски - 1, иначе в общем юникодном случае лучше просто взять to_lowercase
Ну, я хотел просто по индексам строки пройтись, но что-то не нашел такой возможности.
chars итератор. Просто длина символа не константна, поэтому нет возможности обратиться к символу за константное время
Обсуждают сегодня