Я пишу lexer в Rust, и я совершенно новичок в том, как Rust делает что-то по сравнению с Java/C++.Можно ли сравнить символ с символом char или & char?
У меня есть функция, которая идет что-то вроде:
fn lookup(next_char: &mut char, f: &File) {
//if or match
if next_char == '(' {
//do something
}
}
Это дает
error: the trait `core::cmp::PartialEq<char>` is not implemented for the type `&mut char` [E0277]
if next_char == '(' {
^~~~~~~~~~~~~~~~
Если они включены, то это дает несоответствие типов ошибок. Я понимаю, почему он дает эти две ошибки. Мне было интересно, есть ли способ сравнить два значения. Возможно, я не думаю о способе ржавчины или что-то в этом роде, но я не видел хорошего способа сделать это в документации или в другом месте в Интернете.
Или, что менее идиоматический, возьмите справку о буквальном:?!?. 'Если next_char == & '('' – Shepmaster
@Shepmaster Это работает – delnan
О есть Подавляется осущий для & T == & T – delnan