[英]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.