gpt4 book ai didi

java - 如何在 Java 8 的 lambda 表达式中使用条件?

转载 作者:搜寻专家 更新时间:2023-11-01 01:07:34 26 4
gpt4 key购买 nike

我是编程初学者,我想知道如何编写带条件的 lambda 表达式。

public interface MathInterface {

public int retValue(int x);

}

public class k1{
public static void main(String [] args) {
MathInterface f1 = (int x) -> x + 4; // this is a normal lambda expression
}
}

上面的代码应该表示数学函数:

f(x) = x + 4。

所以我的问题是如何编写一个包含此函数的 lambda 表达式:

f(x) =

x/2(如果 x 能被 2 整除)

((x + 1)/2)(否则)

感谢任何帮助:)

编辑:@T.J. 的回答。 Crowder 是我正在寻找的东西。

MathInteface f1 = (int x) -> (x % 2 == 0) ? x / 2 : (x + 1) / 2;

最佳答案

So my question is how can i write a lambda expression that covers this function...

您可以编写一个带有 block 主体 ({}) 的 lambda(我称之为“冗长的 lambda”)并使用 return:

MathInteface f1 = (int x) -> {
if (x % 2 == 0) {
return x / 2;
}
return (x + 1) / 2;
};

或者您使用条件运算符:

MathInteface f1 = (int x) -> (x % 2 == 0) ? x / 2 : (x + 1) / 2;

(或两者)。

lambda tutorial 中有更多详细信息.

关于java - 如何在 Java 8 的 lambda 表达式中使用条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43834856/

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