Java8 FP if/else if/else 替换为 lambdas

标签 java lambda functional-programming

我对 Java 8 if 语句有疑问。有人可以告诉我一种不使用 if 仅使用 Java 8 lambda 来编写此代码的方法吗? 解决方案不应包含 if、while 或 for。有可能吗?

if (first_number == second_number) {
  return "PERFECT";
} else if (first_number > second_number) {
  return "ABUNDANT";
} else {
  return "DEFICIENT";
}

最佳答案

没有“if's、while's 或 for's”,但也没有 lambda:

return (first_number == second_number ? "PERFECT" :
        first_number > second_number ? "ABUNDANT" : "DEFICIENT");

? : 在 Java 语言规范(参见 15.25. Conditional Operator ? :)中称为条件运算符,但通常称为三元运算符,因为它是唯一的Java 运算符,分为 3 个部分。

关于Java8 FP if/else if/else 替换为 lambdas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52345682/

相关文章:

java - 需要包含 Swarm.SwarmEnemy.SwarmEnemy1 的封闭实例

java - WebDriver:executeScript() 导致 BindException

java - Maven 构建花费的时间太长

functional-programming - 使用 Clojure 初始化 JTable 的所有元素的最佳方法是什么?

java - 来自外部类的 Android Canvas 不会显示在 Fragment 中

Java 8 : How to go through List with Lambda Expression

c++ - 奇怪的错误 C2275 ... 非法使用此类型作为具有成员函数模板和 lambda 的表达式

algorithm - 是否可以有效地评估 lambda 演算项?

scala - 为什么 `scala.util.Try(date)` 未定义时 `Failure` 不返回 `date`?

ios - Swift 中的函数式图形