我有这个错误
错误:二进制操作
|无法应用于类型&mut u16
有了这段代码,
fn f_op(op: &mut u16) {
let mut addr: u16 = (op | 0xFFF);
..//
}
Run Code Online (Sandbox Code Playgroud)
解决它&mut改为&
fn f_op(op: & u16) {
Run Code Online (Sandbox Code Playgroud)
但我不知道为什么我不能用|同&mut,肯定存在一个很好的理由,但有人能向我解释.
因为BITOR特质未实现的&mut u16.但是,它是&u16.
正如viraptor指出的那样,你也可以用以下方法取消引用它:
*op | 0xFFF;
Run Code Online (Sandbox Code Playgroud)
..这将使它成为u16..也可以实现BitOr上面所见的特征.