【问题标题】:What traits are implemented by unit type?单元类型实现了哪些特征?
【发布时间】:2014-07-01 18:06:13
【问题描述】:

http://doc.rust-lang.org/std/ 没有给出明确的答案,并且与其他原始类型不同,() 没有单独的页面。

看起来单元实现了与一般元组相同的特征:
克隆
部分均衡
情商
偏序
奥德
默认
,
但同时单元在文档中的任何地方都与元组分开处理。

【问题讨论】:

标签: rust


【解决方案1】:

我现在正在为() 写一个页面:PR #15321... 现在显示为std::unit::unit

在此期间,Rust 非常容易被 grepp,并且 grep for impl.*for *() 会出现一堆 impls(但是,并不是全部,因为有些是由宏生成的):

src/libcollections/hash/mod.rs:150:        impl<S: Writer> Hash<S> for () {
src/libcore/cmp.rs:211:    impl PartialEq for () {
src/libcore/cmp.rs:243:    impl PartialOrd for () {
src/libcore/cmp.rs:270:    impl Ord for () {
src/libcore/fmt/mod.rs:740:impl Show for () {
src/libdebug/repr.rs:39:impl Repr for () {
src/librand/rand_impls.rs:192:impl Rand for () {
src/librustc/util/ppaux.rs:509:impl Repr for () {
src/libserialize/json.rs:2209:impl ToJson for () {
src/libserialize/serialize.rs:361:impl<E, S:Encoder<E>> Encodable<S, E> for () {
src/libserialize/serialize.rs:367:impl<E, D:Decoder<E>> Decodable<D, E> for () {
src/libsyntax/ext/quote.rs:150:    impl ToSource for () {

(以及一堆测试。)

总的来说,感兴趣的特征有:HashPartialEqPartialOrdOrdShowRandToJsonEncodableDecodable。还有至少DefaultTotalEqClone via 宏。

【讨论】:

  • 当然也可以有一些impl&lt;T: U&gt; V for T,其中()的实现U意味着V的实现。
猜你喜欢
  • 1970-01-01
  • 2019-12-08
  • 1970-01-01
  • 2014-09-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多