关于特征定义中的特征约束 #340
OuYangPaste
started this conversation in
内容建议
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
这一 part 我以前学的时候真的是纠结良久,当时一直想不通,实现 Copy 为什么要 先实现 Clone, 实现了 Fn 的闭包为什么一定会实现 FnMut, 明明 Copy 的实现也不依赖 Clone,Fn 的实现也不依赖 FnMut,为什么他们会有约束关系。直到后来我开始敲代码(没错,我连敲代码都能懒就懒🙈),才想到,Fn 实现固然不依赖于 FnMut,但是语义上来说,能扔进去 FnMut 还能保证安全的地方,扔个 Fn 进去,在安全性上也一样是有保证的,反之不然,所以才会使得实现了 Fn 的闭包必然也顺手实现了 FnMut。同理,Copy 固然实现不依赖于 Clone,但是语义上来说,一个能够被 Copy 的变量,能够被 直接 .clone 调用,能够被放进受 Clone trait 约束的方法中使用 ,也是再正常不过吧。
这一块由于曾经迷惘过,目前粗看《圣经》,在相关内容方面似乎描述得也不够仔细,希望《圣经》能在这方面补足一下
Beta Was this translation helpful? Give feedback.
All reactions