tao-of-rust-codes icon indicating copy to clipboard operation
tao-of-rust-codes copied to clipboard

「第十三章」 `13.2.2` 节 `子类型与型变` 中的错误

Open mzji opened this issue 6 years ago • 3 comments

页码与行数

  • 第 492 页
  • 第 11 行

文本或排版错误

Fn(T) -> U 在 T 上是不变,在 U 上是协变。

按照 我测试的结果FnT 上应该是逆变的。

同理,第 494 页第二行,“普通的函数调用,参数是不变”,但实际上也是逆变的:一个类型为 &'a str 的形参永远可以传一个 &'static str 的实参进去。

PS:感觉这里实际上应该用 fn(T) -> Ufn 类型比 Fn trait 更加基础重要一些。 PS2:493 页就写了 PhantomData<fn(T)>T 上是逆变 😂

mzji avatar Jan 06 '19 19:01 mzji

@mzji 感谢反馈。我来调研一下。

ZhangHanDong avatar Jan 07 '19 03:01 ZhangHanDong

结果如何

acodercat avatar May 13 '20 03:05 acodercat

@acodercat 他说的应该是对的,还没抽出时间看这块

ZhangHanDong avatar May 15 '20 11:05 ZhangHanDong