Как проверить размер вектора char? [Дубликат]

11
задан Shepmaster 6 May 2015 в 22:45
поделиться

1 ответ

Конечно, вы можете это сделать - просто len не является полем, это метод:

fn test_length(arr: &[String]){
    if arr.len() >= 10 {
        // Do stuff
    }
}

Если вы только начали изучать Rust, вы должны прочитать официальная книга - вы также обнаружите, почему &[str] не имеет смысла (короче говоря, str - это нестандартный тип, и вы не можете создать его массив, вместо этого &str следует использовать для заимствования строки и String для принадлежащих строк, скорее всего у вас есть Vec<String> где-то, и вы можете легко получить &[String] из него).

Я бы также добавил, что неясно, если вы хотите передать строку или массив строк в функцию. Если это строка, вы должны написать

fn test_length(arr: &str) {
    if arr.len() >= 10 {
        // Do stuff
    }
}

len() в строке, однако, возвращает длину в байтах, которая может быть не то, что вам нужно (длина в байтах! = Длина в " символы "в общем, любое определение" character ", которое вы используете, потому что строки находятся в UTF-8 в Rust, а UTF-8 - кодирование с переменной шириной).

Обратите внимание, что я также изменил testLength на test_length, поскольку snake_case является принятым соглашением для программ Rust.

19
ответ дан Vladimir Matveev 4 September 2018 в 10:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: