我想要做到這一點:無,一些和條件處理
名稱爲abc的變量必須爲無,除非複雜處理的結果爲真。 我寫的和回答的一個開端,但它不工作:
def abc={
None
copie.getRoot().asInstanceOf[DefaultMutableTreeNode].children() foreach ({
site => <...more things after...>
}
在<更多的事情>後,你可以找到如結果一些(站點)
但編譯器不接受這個命令,我的意思是「無」,後面是一些條件,最終由Some(xxx)完成。如果我在條件之後加上「無」,結果當然總是「無」,並且這不是預期的結果。
你能告訴我它是否可以這樣工作,以及如何? 否則我該如何繼續?
@Robin:你看到正確的:我想就像如果是在Java中:結果應該是沒有或者一些(XXX),但令人驚訝的,如果我把「無」在塊的開始,後「無」條件語句,它偶爾返回Some(xxx),eclipse的編譯器不接受我的代碼。 所以第一個問題可能是:這個數量級(無其次是一些conditionnal治療最終返回一些(XXX)右 例如:
def abc():Option[DefaultMutableTreeNode]={
None
MyTree.getRoot().children() foreach{site=>
if (site.toBeImported()) Some(site)
else site.children() foreach {type=>
if (type.toBeImported()) Some(type)
}
}
}
這裏這個函數返回None,有些(網站)如果一個網站是「toBeImported」(如果很多,最後一個將被返回),或者一些(類型)如果類型是「toBeImported」(也是最後一個)。 這不是我在我的程序中所具有的,但它總結得很好。想法
爲什麼你需要'None'?無論如何,你的'abc'是'Unit'返回類型,所以你不希望它返回任何東西。 'abc'的目的是什麼? – tkroman
@lolvely您正在考慮Java返回關鍵字,這是一個立即停止執行當前方法的命令。 Scala的返回概念是「在執行函數結束時在表達式中獲得的任何值,是該函數的返回值」。 –
@Robin:你看到了正確的,但是如果我在塊的開始處和「無」之後放置「無」,條件語句常常返回Some(xxx),這是錯誤的。 這個訂單是正確的嗎? 例如: 'ABC DEF():選項[DefaultMutableTreeNode] = { 無 MyTree.getRoot()的兒童()的foreach {站點=> 如果(site.toBeImported())一些(站點) 其他站點。 children()foreach {type => if(type.toBeImported())Some(type) } } }' – lolveley