Похожие чаты

Hey, I work my way through the rust book and found

something with the "_" Placeholder in "match" which confuses me...

This works:
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=5c8ac044d6c720ae122f23517db714b8

but this is not working:
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=f1e7fc114e4f7fbfd3987267a8ead294

Compiler says:
match arms have incompatible types

I think the return value for the function is the reason for this behavior? And in my opinion the error message is also confusing, because the match arms have in both cases the same types?

But maybe I just overlook something?

play.rust-lang.org
Rust Playground
A browser interface to the Rust compiler to experiment with the language

5 ответов

10 просмотров
Peter- Автор вопроса

so it's more or less not related to the _ Placeholder...but anyway I would like to know why this happens ... And is it possible to give back some kind of "empty" value when the return type of fn is i32 ?

have in both cases the same types no, they don't: match x { 1 => x+1, _ => (), } if x is 1, you return an i32, if it's something else, you return the unit type, (). these are different types

Peter
so it's more or less not related to the _ Placehol...

if you want to represent absence of value, use the Option type

Artem Starikov
have in both cases the same types no, they don't:...

match x { 1 => {println!("{}",x+1);}, _ => (), } this works because this: { println!("{}", x + 1); } returns () as well

Peter
so it's more or less not related to the _ Placehol...

Put never type or unreachable!() instead of unit type in _

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

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

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
Hi. Do we have a raid bot? Why nobody doing raids on X? Even RH mentioned this and nobody paying attention...whats the channel for hex memes? If mods cant run raids just insta...
H
31
Подскажите, а есть vault lite или ченить такое?) А то нужен вольт для похода в вольт, но весит он ~500 мб) как-то многовато для парочки запросов ))
Alexandr Orloff
17
блеать, почему так?? где в роутере это исправляется?
Арсен Маньяков 🇦🇲
16
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
🌊 Ocean Nodes Dashboard Update 🚀 Hey, Oceaners! First off, a massive round of applause 👏to all of you for the amazing engagement since we launched Ocean Nodes. In just a few ...
KreigDK | Never DM first🌊
3
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
люди, которые используют flameshot, к вам вопрос. Можно-ли поставить хоткей на создание скриншота? В программе есть отдел "горячие клавиши", но там все для редактирования, скр...
ThunDer104
11
Карта сайта