Ответ 1
Конечно, вы можете это сделать - просто len
не является полем, это метод:
fn test_length(arr: &[String]){
if arr.len() >= 10 {
// Do stuff
}
}
Если вы только начали изучать Rust, вы должны прочитать официальную книгу - вы также узнаете, почему &[str]
не имеет смысла (короче говоря, str
is notized type, и вы не можете создать его массив; вместо этого &str
следует использовать для заимствованных строк и String
для принадлежащих строк; скорее всего, у вас есть Vec<String>
где-то, и вы можете легко получить &[String]
из него).
Я бы также добавил, что неясно, хотите ли вы передать строку или массив строк в функцию. Если это строка, вы должны написать
fn test_length(arr: &str) {
if arr.len() >= 10 {
// Do stuff
}
}
len()
в строке, однако, возвращает длину в байтах, которая может быть не то, что вам нужно (длина в байтах!= длина в "символах" вообще, независимо от определения "символа", который вы используете, поскольку строки в UTF-8 в Rust, а UTF-8 - кодирование с переменной шириной).
Обратите внимание, что я также изменил testLength
на test_length
, потому что snake_case является принятым соглашением для программ Rust.