Open zombie110year opened 5 years ago
https://rust.cc/article?id=9a1990b9-e86a-46df-a3c3-fcfaff3c8533
Eq:
a==b
推出 b==a
a==b
且 b==c
推出 a==c
a==a
PartialEq:
手动实现 PartialEq 需要实现 eq(&self, other: T)
方法。
实现 Eq 的前提是已经实现了 PartialEq,因为实现 Eq 不需要额外的代码,只需要在实现了 PartialEq 的基础上告诉编译器它的比较满足反身性就可以了。对于上面的例子只需要:#[derive(Eq)]
或 impl Eq for Book {}
。
Ord(Total Ord):
a<=b
且a>=b
可推出 a==b
a<=b
且 b<=c
可推出 a<=c
a<=b
或 a>=b
PartialOrd 只需要满足反对称性与传递性:
反对称性: a<b
可推出 !(a > b)
,反之亦然
传递性:a<b
且 b<c
可推出 a<c
,==
和 >
同理
PartialOrd 要求你的类型实现 PartialEq
Ord 要求你的类型实现 PartialOrd 和 Eq(因此 PartialEq 也需要被实现)
HTTP 客户端
https://github.com/sagebind/isahc
lib。使用体验类似于 Python 的 requests 库。