On Tue, Oct 30, 2012 at 11:02 PM, Ricky Clarkson
<ricky.clark...@gmail.com> wrote:
> Let's say this is the original with pattern-matching:
>
> val s: String = option match {
>   case None => getValue
>   case Some(foo) => foo.asText
> }
>
> You could write this as:
>
> val s: String = option.map(_.asText).orElse(getValue)
>
> I might have misunderstood, it's just hit midnight and I've had a long
> day.  If I have, can you give a code example?  Tony Morris' cheat
> sheet might help; http://blog.tmorris.net/scalaoption-cheat-sheet/

Hmm... yeah, I'm not explaining this well.

The None case is treated the same as a case of a type I am not ready
to deal with.  So, the code is:

val t = Option(page.querySelector(".fooClass")) match {
  case Some(x:HtmlInputElement) => x.getValueAttribute()
  case Some(x:DomNode) => x.asText()
  case _ => ""
}

Typing it, it occurs to me I could probably just skip the Option
entirely (Right?  That just drops the Some from the two cases I
define.).  My gut reaction on any method that returns null on failure
is to immediately wrap it in Option() now, though.

-- 
You received this message because you are subscribed to the Google Groups "Java 
Posse" group.
To post to this group, send email to javaposse@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.

Reply via email to