Return the element of collection if the collection contains only one element
I think that, considering the constraints of your situation (Iterable), the implementation is about as good as it's going to get.

However, that does not mean there aren't things that couldn't be improved.


Camel case is standard for method names. I find getOnlyOne to be easier to read than the all lower case version.
It has become more of a standard to declare the result type of methods, especially if the method is part of an API. Unless it's a one-line method whose return type is blindingly obvious.




implicit class GetOnlyOne[A](val coll: Iterable[A]) {
  def getOnlyOne: Option[A] = {
    if (coll.isEmpty) None
    else if (coll.tail.isEmpty) coll.headOption
    else None
  }
}