使用 Scala formatLocal 将 null 格式化为空白

Format null as blank with Scala formatLocal

我们正在使用 "%,.2f".formatLocal(locale, value)。不幸的是 value 可以为空,然后它会打印 nu。如果 value 为空,我们根本不希望它打印任何内容。是否有 Scala 成语?

对于可能没有有意义的值的变量,Scala 惯用法是 Option。您可以使用 Option.apply:

将可能 null 的对象转换为 Option
Option(3.14f : java.lang.Float) //Some(3.14)
Option(null : java.lang.Float) //None

然后您可以使用惯用的 Option 方法,如 foreachmapfoldgetOrElse 以获得所需的效果:

val myOptionString = myOptionFloat.map("%,.2f".formatLocal(locale, _))

myOptionString.foreach(println) //only print if the Float is not null   
val myString = myOptionString.getOrElse("") //empty string if the Float is null

或一起打印:

Option(myFloat).foreach(value => println("%,.2f".formatLocal(locale, value))

并用于存储:

Option(myFloat).fold("")("%,.2f".formatLocal(locale, _))