Idiom for Scala's Option when doing equality tests

scala

Solution

This is the cleanest, most idiomatic way to do it.

val o = Some(4)
o.contains(4) // true
o.contains(5) // false

There is also a predicate version of this:

val o = Some(4)
o.exists(_ > 0) // true
o.exists(_ > 100) // false

Only use the predicate version if `contains` is not strong enough.

Problem

What's an easier/cleaner way to do this? ``` val o = Some(4) if(o.isDefined) {o.get == 4} else { false } ``` I've tried ``` o.getOrElse(null) == 4 ``` but that feels wrong, since in the isEmpty case, you end up testing null against the other side... which could itself be null. I need it to be if opt is defined && opt.get == whatever. I feel like some method on Option should just take a function, and I could do it like so: ``` o.test( (x) => x == 4 ) ``` and it would apply the function only if o.isDefined.

Original source

Related problems