我試圖將應該返回單個項目的迭代器轉換爲等效選項。如何將scala Iterator [T]轉換爲Option [T]
我能做的最好的就是這個。我應該使用標準API的東西嗎?
def toUniqueOption[T](a: Iterator[T]): Option[T] =
if (a.size > 1)
throw new RuntimeException("The iterator should be emtpy or contain a single item but contained ${a.size} items.")
else if (a.size > 0)
Option(a.toList(0))
else
Option.empty
這真的是一個壞主意,使用異常表達的邏輯。考慮一個類型'Either [String,Option [T]]'而不是。 –
好的意思。我會嘗試使用Try [T],我發現它可以轉換爲選項[T] – raisercostin