我试图理解对象安全的想法.我从文档中知道,对象安全是以下保持:
Self: Sized
如果物体安全所需的两个条件中的任何一个被丢弃,那么可以想象可以导致安全失败的安全保证可以实现什么?
只有当编译器可以自动为其自身实现时,特征才是对象安全的,方法是通过存储在特征对象中的vtable将每个方法实现为动态函数调用.
如果没有对象安全规则,可以编写具有特征对象满足的类型签名的函数,其中内部使得无法实际使用特征对象.
我认为,回想起"对象安全"的措辞选择可能是一个糟糕的,因为它似乎与记忆安全无关,在Rust中正常使用术语"(un)safe".
对象"能力"可能更接近事实; 能够通过特征对象引用的特征.
归档时间: |
|
查看次数: |
164 次 |
最近记录: |