问题描述
我有一个Rust结构,可以这样简化:
struct Struct {
field: String // the type doesn't matter
}
impl Struct {
pub fn method<F,R>(&self,closure: F) -> R
where
F: FnOnce(&String) -> R
{
closure(&self.field)
}
}
Struct::method
是否有任何常规名称(在类似情况下用于Rust Book或标准库中)?
apply
,visit
吗?解决方法
如果只有这样一种方法,并且它接收到的数据是Struct
的中心,那么我可以这样做:
-
map()
,如果它消耗/转换Struct
并返回新的Struct
,如Option::map()
-
with()
(如果它收到对数据的共享引用,例如LocalKey::with()
)
-
with_mut()
(如果函数收到对数据的唯一/可变引用)。 (我对此没有很好的参考,但这是with()
的逻辑扩展,并且与容器上的iter()
和iter_mut()
一致。)
如果有多种这样的方法,或者操作的Struct
数据的子集不明显,我将调用添加字段名,如with_field()
或{{1} }。