【发布时间】:2019-07-11 03:43:05
【问题描述】:
我正在制作一个特征来定义度量空间中的距离,例如:
trait Metric<T> {
fn distance(o1: &T, o2: &T) -> f64;
}
我希望任何实现都满足某些属性,例如:
distance(o, o) = 0.0
是否存在 rust 中的方法来强制执行该操作?
【问题讨论】:
-
我认为没有,您可以对返回类型进行某种保护,但在某些时候它不是很实用,这是实现正确的责任。进行单元测试等。
-
您可以使用
assert_eq!,如果距离无效,则返回Option/Result。