有headOption
方法,它返回集合頭部的Option[T]
。從mutable.Buffer中刪除選項
我想有類似removeOption(n: Int)
返回和刪除第n個元素,如果它在集合的範圍內,否則什麼也不做,並返回None
。
我可以這樣做與模式匹配,但這似乎太雜亂。也許implicit class
es會在這裏幫助嗎?
Actualyl我嘗試這樣做:
implicit class RemoveOptionImplicit[A](val t: mutable.Buffer[A]) extends AnyVal {
def removeOption(index: Int) =
if(index >= 0 & index < t.size)
Some(t.remove(index))
else
None
}
但不知道這是一個好辦法。
該清單應該返回什麼? (標準列表是不可變的 - >刪除必須創建一個新列表)。 它應該返回一個(Option [T],List [T])的元組嗎? –
@ThomasBöhm它應該返回'Option [T]',其中T是元素類型。如果存在'Some(el)',否則'None'。 –