簡體   English   中英

這個循環這個數組的for循環怎么能變成一個單行呢?

[英]How can this for loop that loops this array be turned into a one liner?

你們知道如何簡化或將這段代碼變成一個襯里,而忽略庫只是代碼本身

for (int i = 0; i <= 8; i += 1) {
    inventory.SpellMenu.setItem(slots.get(i), (ItemStack) inventory.ItemQueue.toArray()[i]);
}

從我已經看到的情況來看,您的代碼是 for 循環中的一行。 為了更簡潔的代碼,建議一行的最大長度為 70-80 個字符,因此您可以將 upcast 重新格式化為變量以使其更具可讀性。

for (int i = 0; i <= 8; i += 1) {
    ItemStack stack = (ItemStack) inventory.ItemQueue.toArray();
    inventory.SpellMenu.setItem(slots.get(i), stack[i]);
}

在 for 循環中,我看不到任何減少代碼的方法,但是您可以刪除括號,以防您像原來那樣保留代碼。

使用IntStream並且范圍從 1 到 8 並使用foreach來做你想做的事

IntStream.rangeClosed(0, 8).forEach(i -> inventory.SpellMenu.setItem(slots.get(i), (ItemStack) inventory.ItemQueue.toArray()[i]));

比 for 循環有點技巧,但更有效

暫無
暫無

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

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