Итерация выводит Ok(Type { id: 1, text: "..." }) как можно

получить доступ к элементу text ? код println!("{:?}", i.text); даёт ошибку

20 ответов

9 просмотров

Какую ошибку то?

ηк ️️️
screenshot

for i? in data {..}

ηк-️️️ Автор вопроса
Daelon
for i? in data {..}

так нельзя же, ошибку выдаёт

ηк ️️️
screenshot

ну тут написано, что у i здесь тип Result<…> тебе надо его как-то развереуть в значение как - другой вопрос

ηк ️️️
получилось с println!("{:?}", i.unwrap().text);

Попробуй тоже самое, только вместо unwrap ?

ηк-️️️ Автор вопроса
Алиса Кассель-Королёва
ты куда его сунул(а)…

вместо unwrap(), и тогда ошибка выводится. а println!("{:?}", i.unwrap().text); работает и выводит элементы

ηк-️️️ Автор вопроса
Алиса Кассель-Королёва
код

сейчас уже нет, но могу ссылку дать на гихаб

Ну как то так: match i { Ok(stype) => println! ("{}", stype.text), Err(_) => {}, }

Алишер Галиев
Ну как то так: match i { Ok(stype) => println!...

Большую информацию можно найти если поискать "pattern matching". И да вышеприведённые куски кода вводят локальные переменные. Можно использовать и более глобальные переменные (объявленные вне scope of match). Но для этого надо предварительно инициализировать переменную!!! Иначе компилятор будет жаловаться на использование предположительно не инециализированной переменной!! (она и в самом деле не инициализируется если выпадет Err(_))

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

Обсуждают сегодня

Карта сайта