簡體   English   中英

同一行代碼中的兩條指令

[英]Two instructions in the same line of code

是否可以在同一行代碼中編寫兩條指令?

我知道我可以這樣做:

if (b < -1 && element.compareTo(node.getRight().getElement()) > 0) return leftRotation(node);  

但目前我有這個:

if (b > 1 && element.compareTo(node.getLeft().getElement()) > 0) {
        node.setLeft(leftRotation(node.getLeft()));
        return rightRotation(node);
}  

是否可以將node.setLeft()return語句放在同一行代碼中?

是的。

顯而易見的答案:

{ statement1; statement2; } { statement1; statement2; } { statement1; statement2; }都在一條線上。 實際上,您可以從 java 文件中刪除所有換行符,並且它的編譯方式相同。 顯然,不要這樣做; 你會得到一個難以理解的混亂!

一個更有用的答案:

想想您的 API 設計。 在這種情況下,也許 node 的setLeft方法應該返回自身,而不是返回 void。 然后你可以寫: return rightRotation(node.setLeft(leftRotation(node.getLeft()));或者,如果 leftRotation 和 rightRotation 是節點本身的方法,則更好: return node.setLeft(node.getLeft().rotateLeft()).rotateRight();

可能不是。 因為setLeft的定義大概是這樣的:

public void setLeft(int left) {
    this.left = left;
}

因此,您不能返回void返回方法執行結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM