如果Java我可以合法地做到这一点......
int num = 5;
final boolean isPositive;
if(five > 0) {
isPositive = true;
} else {
isPositive = false;
}
System.out.println("Is positive: " + isPositive); // Prints "Is positive: true"
我称之为延迟定义常数。
有没有办法在Scala中创建延迟定义常量?
答案 0 :(得分:6)
在scala中,您无法延迟定义。如果你想做类似的事情,你通常会通过将它分配给if语句的结果来实现这一点。
val isPositive = if(num > 0) true else false
甚至只是
val isPositive = num > 0
答案 1 :(得分:2)
您可以这样做:
val isPositive = num > 0
或(当num
难以计算且可能未被调用时 - 那么你可以延迟计算)
lazy val isPositive = num > 0
如果num
是一个变量,那么你可以写:
def isPositive = num > 0
在Scala中,将短函数编写为一个衬里是完全可以的。
答案 2 :(得分:1)
我这样做了......
val num = 5
val isPositive: Boolean = {
if(num > 0) { true }
else { false }
}
println("Is positive: " + isPositive) // Prints "Is positive: true"