Как создать строковый массив, который может быть передан в качестве параметра в Rust? - PullRequest
0 голосов
/ 28 января 2019

Я пробовал несколько вещей, но на данный момент это игра в догадки

fn main() {
    let _array: [&'static str; 4] = ["First", "Second", "Third", "Fourth"];

    check_string(/*_array*/);
}

fn check_string(/*_input: ??? */) {


}

1 Ответ

0 голосов
/ 28 января 2019

Хороший способ проверить тип переменной в ржавчине заключается в следующем:

let val: () = /* your value */;

( Playground )
В результате вы получаете сообщение об ошибке, сообщающее, что ожидалось(), а не WhatEverYourTypeIs
В этом случае вы получите [&'static str; 4], как вы уже упоминали в своем коде;поэтому просто потребуйте, чтобы в функции:

fn check_string(data: [&'static str; 4])

Вы также могли передать фрагмент:

fn check_strings(data: &[&'static str])

и поиграть с временами жизни:

fn check_strings<'a>(data: &'a[&'a str])

и т. д.
Чтобы вызвать его, передайте:

check_string(_array);

Если требуется размерный массив или

check_strings(&_array[..]);

Если требуется фрагмент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...