2014-10-19 5 views
0

Как получить значение подстановочного знака в заявлении match?Получение значения подстановочного знака

Например:

let a = 1i; 
let b = 2i; 
match a.cmp(&b) { 
    Greater => println!("is greater"), 
    _ => println!("is {}", _) // error: unexpected token: `_` 
} 

Я надеюсь на что-то более чистого, чем хранение enum, совпадающим в переменной:

let a = 1i; 
let b = 2i; 
let ord = a.cmp(&b); 
match ord { 
    Greater => println!("is greater"), 
    _ => println!("is {}", ord) 
} 

ответ

1

Это то, что вы просите?

let a = 1i; 
let b = 2i; 
match a.cmp(&b) { 
    Greater => println!("is greater"), 
    e => println!("is {}", e) 
} 
+0

Спасибо, не знал, что какой-либо идентификатор может использоваться в качестве подстановочного знака. – August

+0

Да, но есть уловка: если вы попытаетесь сопоставить вариант «enum», который вы не импортировали с помощью 'use', вы можете получить [ошибки о недоступных шаблонах] (http://is.gd/ Dep83r). Здесь 'Greater' импортируется автоматически, потому что это часть прелюдии. –

Смежные вопросы