是否有像 Python 中的 Walrus 运算符这样的 Java 赋值表达式

Ram*_*lat 6 java

在 Python 中,您可以为变量赋值并同时返回它,如下所示:

a = [1, 2, 3, 4] 
if (n := len(a)) > 3: 
    print(f"List is too long ({n} elements, expected <= 3)") 
Run Code Online (Sandbox Code Playgroud)

有没有办法在Java中做到这一点?

bla*_*gae 7

没有单独的运算符,但您绝对可以这样做。但是,您必须在 if 条件之外声明变量:

int[] a = {1, 2, 3, 4};
int n;
if ((n = a.length) > 3) {
    System.out.println("List is too long (" + n + " elements, expected <= 3)");
}
Run Code Online (Sandbox Code Playgroud)

  • 确实,在某些情况下这是常见的做法,例如使用缓冲读取器 `while ((line = br.readLine()) != null)` 等读取文件。 (3认同)