![]() |
1
3
干得好:
注意,我只集中在“如何省略
当然,另一种方法也起作用:
你只需要有合适的外部入口就可以了(
这样你就省去了那些
另一种方法是
如果您不喜欢这里发生的事情,而是想向任何人隐藏它,您也可以只提供适当的扩展函数。但命名可能已经不那么容易了。。。下面是一个例子:
现在你可以在任何地方调用这个函数,你想用它们的键与地图相交,然后立即映射到其他值,如下所示:
请注意,我还不是这个名字的超级粉丝。但你会明白;-)函数的所有调用者都有一个漂亮/简短的接口,不需要理解它是如何真正实现的。但是,函数的维护者当然应该相应地测试它。 也许下面这样的东西也有帮助?现在我们引入一个中间对象,以便更好地命名。。。仍然没有那么确信,但也许它能帮助某人:
如果你走这条路,你应该考虑中间对象应该做什么,例如现在我可以
|
![]() |
2
1
为了简化问题,假设您有以下几点:
就内存和性能而言,最好的选择是直接更新可变映射中的条目:
如果您有理由坚持使用不可变映射,那么您将不得不分配临时对象,并在总体上做更多的工作。你可以这样做:
|
![]() |
3
1
你可以试试这样的方法:
这首先将可爱的狗配对成新狗或空狗,然后如果有新狗,则映射到该对:新狗和原始地图中的可爱信息。
更新
:罗兰说得对,这将返回
很可能他在另一个答案中的方法是
|