如何製作所有其他類型的子類型的返回類型。我想要以下虛擬佔位符
def foo(): (String => String) = TODO
def bar(): String = TODO
def baz(): Int = TODO
TODO
是什麼類型?
如何製作所有其他類型的子類型的返回類型。我想要以下虛擬佔位符
def foo(): (String => String) = TODO
def bar(): String = TODO
def baz(): Int = TODO
TODO
是什麼類型?
實現TGE方法體Scala中「所有其他類型的子類型」是Nothing
。你可以做這樣的事情:
def foo(): (String => String) = TODO
def bar(): String = TODO
def baz(): Int = TODO
def TODO: Nothing = throw new UnsupportedOperationException("not implemented")
編輯:
OK,如OP接受我的回答對一個奇怪的原因,人們一直upvoting它(對於一個更奇怪的原因),我感到有責任來改變我的答案。所有學分去om-nom-nom:
您正在尋找已經在Scala Standard Library實現和工作原理是這樣的事情:
def foo(): Int = ???
噓聲,嘶嘶聲。評論是答案,使用???這就是它的目的! –
Nothing
是每種類型的子類型,它沒有居住者。這是一個throw
的類型,所以簡單地通過投擲
def todo(): Nothing = throw new NotYetException
通過你想做什麼的方式是已經可以在[標準庫] (https://github.com/scala/scala/blob/v2.10.3/src/library/scala/Predef.scala#L252):'def foo():Int = ???' –
我會把它當作一個答案。謝謝。 –
@ om-nom-nom太糟糕了,你不只是寫一個簡短的正確答案。注意「錯誤」的答案。考慮到人們爭論是否稱它爲TODO或其他名稱。擁有自己的TODO是可以的,但實際上每個人都愛上了???這表明普遍採用。 –