有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'。 –