May 2025
Intermediate to advanced
424 pages
6h 12m
Chinese
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
Java 程序通常非常依赖可变状态,因为在 Java 中定义值类型和转换值非常困难,即使使用 Streams API 也是如此。 有什么好办法可以将依赖可变对象和副作用的 Java 代码转换为转换不可变值的 Kotlin 代码?
旅行者最想知道的事情之一就是他们的冒险之旅需要花费多少钱。 国际旅行使这一问题变得相当复杂。 旅行在跨越国界的过程中会产生多种货币的费用,但旅行者希望能够比较总体费用,以便决定路线和住宿地点。
因此,Travelator 按当地货币和旅行者的首选货币汇总费用,然后以首选货币显示总费用。Travelator 使用CostSummary 和CostSummaryCalculator 类来实现这一功能。让我们先看看它们是如何使用的,然后再看看它们的实现。
Itinerary 类有一个用CostSummaryCalculator 总结其成本的操作。其使用方法如下:
valfx:ExchangeRates=...valuserCurrency=...valcalculator=CostSummaryCalculator(userCurrency,fx)funcostSummary(i:Itinerary):CostSummary{i.addCostsTo(calculator)returncalculator.summarise()}
这里的代码创建了一个CostSummaryCalculator ,其中包含旅客首选的货币和货币汇率来源。
这就告诉Itinerary 将其成本添加到计算器中。 作为回应,计算器Itinerary在计算器中添加其要素的成本:沿线行程、住宿和其他收费服务。
这将调用计算器的summarise 方法,以获得所有成本计算后的CostSummary 。
已经有人将Itinerary 类转换为 Kotlin,但 ...
Read now
Unlock full access