Rust 接受闭包并为其提供临时字段访问的方法的常规名称是什么?
我有一个Rust结构,可以这样简化:Rust 接受闭包并为其提供临时字段访问的方法的常规名称是什么?,rust,naming-conventions,naming,conventions,Rust,Naming Conventions,Naming,Conventions,我有一个Rust结构,可以这样简化: struct结构{ field:String//类型无关紧要 } impl结构{ pub-fn方法(&self,闭包:F)->R 哪里 F:FnOnce(&String)->R { 闭包(&self.field) } } Struct::method是否有任何常规名称(类似情况下在Rust Book或标准库中使用)?是否需要apply,visit。?如果只有一种方法,并且它接收的数据是Struct的核心,我会选择: map() with()如果它接收到对
struct结构{
field:String//类型无关紧要
}
impl结构{
pub-fn方法(&self,闭包:F)->R
哪里
F:FnOnce(&String)->R
{
闭包(&self.field)
}
}
Struct::method
是否有任何常规名称(类似情况下在Rust Book或标准库中使用)?是否需要apply
,visit
。?如果只有一种方法,并且它接收的数据是Struct
的核心,我会选择:
map()
如果它接收到对数据的共享引用,如with()
- 如果函数接收到对数据的唯一/可变引用,则使用_mut()。(我没有很好的参考,但它是
的逻辑扩展,与容器上的with()
和iter()
一致。)iter\u mut()
如果有多个这样的方法,或者不清楚它操作的是
Struct
的数据的子集,我会调用add字段名,如with_field()
或with_mut_field()
没有。这取决于你的领域。@Shepmaster你是说std
这种模式一次都没有出现过吗?我想不出30秒就能出现一次。即使有,也不意味着你可以使用/扩展命名模式。是否符合你的标准?如果只有一个这样的方法,并且它接收的数据是Struct
的核心,我会选择map()
(如选项中的)或with()
(如中的)。如果有多个这样的方法,或者它接收的字段不明显,我会将其称为更显式的with_field
。不稳定为with_field
命名提供了弱支持。当然,如果该方法除了简单地调用闭包之外还有一些行为,那么它可能应该被命名为更具体的名称(例如Vec::resize\u with
,Option::get\u或\u insert\u with
,等等)