null
. However, while using a regex with pattern matching I was surprised by a NullPointerException when trying to look at the result of an optional capture group. Consider the following example:scala> val Pattern = "(a)(b)?".r Pattern: scala.util.matching.Regex = (a)(b)? scala> "a" match { case Pattern(a, b) => printf("[%s][%s]%n", a, b) } [a][null] scala> "ab" match { case Pattern(a, b) => printf("[%s][%s]%n", a, b) } [a][b]
I just assumed that
b
would be of type Option[String]
. There is probably a good reason for this travesty, my guess would be something about making it work with the type system, but after using scala for a while it just seems wrong to be getting a null
value.
No comments:
Post a Comment