我正在进行从Java到Kotlin的转换,并了解Java开关和Kotlin when语句之间的各种差异。
我的问题是,这些差异是否改变了你在一系列“如果”和“否则如果”块中选择“何时”的标准?
例如,在Java中,当有5种或更多的情况时,“switch”通常比“else-ifs”更有效,其他情况大致相当。当语句是布尔型时,If-else通常更受欢迎。这在Kotlin中类似吗?在编写代码时,我应该考虑与Java不同的其他原因吗?例如可读性标准等。
我将感谢答案或链接到更深入的阅读这个主题-我一直在努力寻找任何来源,做一个很好的成本效益分析。
3条答案
按热度按时间vkc1a9a21#
Kotlin相对于java的优点是concise语法
当有一个更好的设计。它比传统的开关更简洁和强大
此外,更多的readable与if else相关:
在这种情况下,它就像一个更好的if-else链:条件是布尔表达式。2和往常一样,第一个匹配的分支被选择。3如果这些是布尔表达式,这意味着第一个结果为真的条件被选择。
其优点是when**表达式比if-else语句链更清晰、更容易理解。
41zrol4v2#
我搜索了这个比较,但答案并没有说服我,直到我读到Kotlin的control flow doc
使用***When***就像告别***if***和***switch***语句;
此外,您还可以在以下时间返回:
还在学习Kt,我惊讶于我们需要写的东西少了多少,做的比java能做的多了多少。
jgwigjjp3#
根据Kotlin编码约定:
对于二元条件,首选使用
if
。如果有三个或更多选项,首选使用when
。编辑:有趣的是,
when
语句必须是详尽的,所以如果我切换一个只有两个值的枚举,我将忽略这个标准,以便在枚举扩展时从编译错误中获益。