当string不为空时,Scala选项变量会覆盖

时间:2015-08-25 16:02:15

标签: scala optional

我有2个选项变量,想要在1st为None或空字符串时将第2个分配给第1个。写这个有更好的方法吗?我需要为类中的其他10个类似属性执行这些操作。

var myoption1: Option[String]
var myoption2: Option[String]

import org.apache.commons.lang3.StringUtils
  implicit class Addons(val s: String) {
    def isEmptyS = StringUtils.isEmpty(s)
    def isNotEmpty = StringUtils.isNotEmpty(s)
  }

if (myoption1.map(_.isEmpty).getOrElse(true) &&
    myoption2.map(_.isNotEmpty).getOrElse(false)
    ) myoption1 = myoption2

1 个答案:

答案 0 :(得分:3)

如果您不关心2中的哪个空字符串将在func playSound { var soundID: SystemSoundID = 0 let soundURL = CFBundleCopyResourceURL(CFBundleGetMainBundle(), "myFileName", "mp3", nil) AudioServicesCreateSystemSoundID(soundURL, &soundID) AudioServicesPlaySystemSound(soundID) } 中结束,如果它们都为空,那么我建议:

myoption1