Luk*_*odt 6 reference language-lawyer rust
伏地魔 - 不能被命名的人 - 类型是在源代码中无法写下名字的类型.在Rust中,闭包具有这样的类型,因为编译器为每个闭包生成一个新的内部类型.接受闭包作为函数参数的唯一方法是接受一个泛型类型(通常称为F
),它被限制为Fn()
(或类似的)特征.
Rust中的引用始终包含一个生命周期参数,即使通常可以省略此生命周期.生命周期不能明确命名,因为它们代表某种复杂的编译器内部范围.与生命周期交互的唯一方法是使用通用参数(通常称为'a
)代表任何生命周期(可能由另一个生命周期限制).当然,还有'static
它可以被命名,但是这是一个特殊的情况下,不与我争吵冲突.
那么:Rust引用了Voldemort类型吗?或者我是否误解了"Voldemort类型"或Rust引用?
作为在该地区没有任何特别强大知识的人:
我认为答案可能是:技术上是,但它过度还原.有点像说"所有类型都是整数数组"; 我的意思是,是的,但你通过这样做会失去一些有用的语义歧视.
Voldemort类型通常是隐藏用户的实现类型,因为它只应该是临时的,或者除了函数描述的接口之外你不应该使用任何东西.引用在技术上完全不可命名,但它并不像它实际上限制你.我的意思是,即使您可以命名特定的生命周期,我也不认为您可以对它做任何有意义的事情(除非可能在函数内进行稍微严格的生命周期检查).