0
我有我要轉換爲斯卡拉一個Java代碼:如果我在Scala中使用for
歸來「的」 Scala中是不一樣的回報「爲」在Java中
MyClass myMethod(String str1) {
for (Item item: items) {
if (/* some condition */) {
if(/* another condition */) {
return item.myMethod123();
}
}
}
return super.myMethod(str1);
}
,它將被翻譯爲map
,即在map
內調用return
將剛剛從map
返回值,但它不會停止myMethod
的執行。但是我希望它的行爲與此Java代碼中的行爲完全相同。
我該如何解決這個問題?
UPDATE:我的意思是,我必須用foreach
而不是for
。但是,從foreach
調用return
僅從foreach
返回值,並且不會停止執行myMethod
。
UPDATE2:我很困惑,foreach
沒有返回任何值。
你可以顯示你的審判scala代碼? – fge
foreach不是像java這樣的一個表達式,它的一個集合函數,它只會在你的地圖內的每個項目上調用一個函數,你也需要使用for表達式,像@ rex-kerr解釋 –
'項目。 find(item =>/* some condition */&&/* another condition * /)。fold(super.myMethod(str1))(_。myMethod123())' –