我知道该错误意味着什么,但我无法修复它。我正在用来mockers测试我的工作,在尝试验证提供给模拟特征函数的结构参数时,我陷入了困境。简化的代码:
#[cfg(test)]
extern crate mockers;
#[cfg(test)]
extern crate mockers_derive;
#[cfg(test)]
use mockers_derive::mocked;
#[derive(Ord, PartialOrd, Eq, PartialEq, Debug)]
pub struct Thing {
pub key: String,
pub class: String,
}
#[cfg_attr(test, mocked)]
pub trait DaoTrait {
fn get(&self, thing: &Thing) -> String;
}
struct DataService {
dao: Box<DaoTrait>,
}
impl DataService {
pub fn get(&self, thing: &Thing) -> String {
self.dao.get(thing)
}
}
#[cfg(test)]
mod test {
use super::*;
use mockers::matchers::eq;
use mockers::Scenario;
#[test]
fn my_test() {
use mockers::matchers::check;
let …Run Code Online (Sandbox Code Playgroud) 我有以下代码:
fn example(known_primes: &[i32], number: i32, prime: i32, limit: i32) {
let mut is_prime = true;
for prime in known_primes {
if number % prime == 0 {
is_prime = false;
break;
}
if *prime > limit {
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我需要prime在第二个条件(*prime > limit)中取消引用,当我不需要在第一个条件()中这样做时number % prime == 0?
这两个%和<是两个数字并把返回一些运营商.唯一的区别似乎在于它们返回的内容(数字与布尔值).虽然为什么不能将借用的整数与文字整数进行比较? 确实解释了使代码工作所需的内容(所有重载的实现,理想情况下在标准库中),它没有说明它为什么起作用a % b.这些运营商之间是否存在根本区别?或者它还没有实现?