我正在进行从Java到Kotlin的转移,并了解Java开关和Kotlin when语句之间的差异。
我的问题是,当您在一系列“ if”和“ else if”块中选择“ when”时,差异是否会改变标准?
例如,在Java中,当存在5个或更多情况时,“ switch”通常比“ else-ifs”更有效,否则,大致相当。当语句为布尔值时,通常首选If-else。在科特林是否类似?在编写代码时,是否还有其他与Java不同的原因我应该考虑-例如可读性标准等。
我希望获得答案或与该主题进行更深入阅读的链接-我一直在努力寻找能够进行良好成本效益分析的任何资源。
相对于Java,Kotlin的好处是concise语法
当有更好的设计时。比传统的交换机更简洁,功能更强大]
还有readable与其他情况有关:
什么时候可以不带参数地使用它。在这种情况下,它充当nicer if-else chain:条件是布尔表达式。与往常一样,选择匹配的第一个分支。假设这些是布尔表达式,则意味着选择了结果为True的第一个条件。
when { number > 5 -> print("number is higher than five") text == "hello" -> print("number is low, but you can say hello") }
优点是,与[if-else语句链相比],[[表达式更清晰,更易于理解]。