我正在阅读kotlinlang中的Kotlin编码约定,并且发现该网站建议人们对二进制选项使用$basename = basename($link, '.php');
语句,对超过两个选项的任何内容使用if
语句。这有什么押韵或原因吗?我无法想象,如果有的话,指出这一点将是一个足够重要的优化。此外,when
语句更易于格式化,以提高IMO的可读性。如果有人想破解它,这里是链接。
答案 0 :(得分:0)
是的,完全正确,
if
语句用于二进制选项,而when
语句用于具有两个以上选项的任何东西
这是例子
if
示例:
val isSeen = false
if (isSeen) {
Toast.makeText(this, "isSeen is True", Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(this, "isSeen is False", Toast.LENGTH_SHORT).show()
}
when
示例:
val isSeen = false
when (isSeen) {
true -> Toast.makeText(this, "isSeen is True", Toast.LENGTH_SHORT).show()
false -> Toast.makeText(this, "isSeen is False", Toast.LENGTH_SHORT).show()
}
如您所见,isSeen
显然只有2个值,即true
或false
,因此建议您使用if
语句
但是当您有两种以上的可能性时,如下所示
if
示例:
val name = "Franz"
if (name == "Franz") {
Toast.makeText(this, "Name is Franz", Toast.LENGTH_SHORT).show()
} else if (name == "Marlon") {
Toast.makeText(this, "Name is Marlon", Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(this, "Not Franz or Marlon", Toast.LENGTH_SHORT).show()
}
when
示例:
val name = "Franz"
when (name) {
"Franz" -> Toast.makeText(this, "Name is Franz", Toast.LENGTH_SHORT).show()
"Marlon" -> Toast.makeText(this, "Name is Marlon", Toast.LENGTH_SHORT).show()
else -> Toast.makeText(this, "Not Franz or Marlon", Toast.LENGTH_SHORT).show()
}
建议您使用when
语句。
希望这可以解决所有问题:)
答案 1 :(得分:0)
如评论所述,易于编写且易于辨认,我这样做是为了标记我的查询答案。