gpt4 book ai didi

java - 报表里面? : expression

转载 作者:行者123 更新时间:2023-12-03 22:47:50 24 4
gpt4 key购买 nike

我正在学习 scala 并试图理解以下句子:

In Java you can't put statements inside a ?: expression

有人可以向我解释一下吗,也许可以举个例子,也许可以在 Scala 的上下文中?

最佳答案

Java有一个继承自C的三元条件运算符,它看起来是这样的:

int x = some_condition ? 1 : 2;
如果 some_condition 为真,

x 将等于 1,否则等于 2。 Java 要求此运算符的参数是表达式,即产生具体值的东西。例如,方法调用或常量文字是表达式,但循环或条件语句或变量定义不是表达式,因为它们没有有意义的值。这意味着您不能从函数返回变量定义,但可以返回方法调用的结果。

Scala 没有三元运算符。但它不需要一个,因为在 Scala 中一切都是表达式。偶数循环 - 它们会产生 Unit 类型的特殊值。条件也是表达式,它们返回所有分支的公共(public)父类(super class)型的值。因此,您可以使用简单的条件“语句”而不是三元运算符。这个 Scala 片段等同于上面的 Java 片段:

val x = if (some_condition) 1 else 2

此外,在 Scala 中,每个 block 也是一个表达式(它的值是 block 中最后一行的值),因此您可以在“三元运算符”中包含语句,例如赋值":

val x = if (some_condition) {
val y = some_computation()
y*2
} else {
val z = another_computation()
z + 3
}

关于java - 报表里面? : expression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21498993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com