面试题答案
一键面试struct Calculator {
value: i32,
}
impl Calculator {
fn operate(&mut self, mut f: impl FnMut(i32) -> i32) {
self.value = f(self.value);
}
}
#[cfg(test)]
mod tests {
use super::Calculator;
#[test]
fn test_operate() {
let mut calculator = Calculator { value: 5 };
calculator.operate(|x| x + 3);
assert_eq!(calculator.value, 8);
calculator.operate(|x| x * 2);
assert_eq!(calculator.value, 16);
}
}