【发布时间】:2014-03-14 15:58:48
【问题描述】:
我正在学习 Scala 并遇到了以下任务 - 如果字符串为空则返回 null,否则将其大写。
Apache Commons 中有两个函数组合在一起解决了这个问题。在 Haskell 我只想写:
upperCaseOrNull = StringUtils.stripToNull . StringUtils.upperCase
但是我找不到在 Scala 中进行简单而干净的函数组合的方法。我找到的最短方法如下:
def upperCaseOrNull (string:String) = StringUtils.stripToNull (StringUtils.upperCase(string))
def upperCaseOrNull = StringUtils.stripToNull _ compose StringUtils.upperCase _
Scala 是否提供更简洁的语法,可能没有所有这些下划线?
【问题讨论】:
-
def upperCaseOrNull (string:String) = if (string == "") null else string.toUpperCase
标签: scala higher-order-functions function-composition