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()如果它接收到对

我有一个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()
    如果它接收到对数据的共享引用,如
  • 如果函数接收到对数据的唯一/可变引用,则使用_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
,等等)