Есть ли более лаконичный способ форматирования сообщения .expect ()? - PullRequest
0 голосов
/ 04 апреля 2019

В настоящее время я должен использовать это для форматирования .expect() сообщения:

fn main() {
    let x: Option<&str> = None;
    x.expect(&format!("the world is ending: {}", "foo")[..]);
}

Есть ли менее подробный способ?

1 Ответ

0 голосов
/ 04 апреля 2019

Во-первых, вам не нужно писать [..]


Если вы действительно хотите паниковать, но также хотите отформатировать сообщение об ошибке, я думаю, я бы использовал assert!():

fn main() {
    let x: Option<&str> = None;

    assert!(x.is_some(), "the world is ending: {}", "foo");
    let _x = x.unwrap();
}

Если вы хотите, вы также можете использовать unwrap ящик:

use unwrap::unwrap;

fn main() {
    let x: Option<&str> = None;

    let _x = unwrap!(x, "the world is ending: {}", "foo");
}

Кроме того, оба эти методаизбегайте построения ошибки String каждый раз, когда expect(), поэтому format!() вызывается.

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