小编Mik*_*ike的帖子

编写此scala方法的最佳方法是哪种?

从写作惯用代码,高效代码等角度来判断它.

我有以下定义的多种方式从getConf1,getConf2或getConf3获取conf值,无论哪个成功产生一个值,当按该顺序调用时.换句话说,如果getConf1产生一个值,我们将跳过剩下的两个.如果getConf1没有产生值,那么我们将尝试getConf2,依此类推.

def getConf1(name: String): Option[String]

def getConf2(name: String): Option[String]

def getConf3(name: String): Option[String]
Run Code Online (Sandbox Code Playgroud)

方法1:

def getSetting(name: String): Option[String] = {
    var r = getConf1(name)
    if(!r.isDefined) { 
        r = getConf2(name)
    }
    if(!r.isDefined) { 
        r  getConf3(name)
    }
    r 

}
Run Code Online (Sandbox Code Playgroud)

方法2:

def getSetting(name: String): Option[String] = {
    val val1 = getConf1(name)
    val val2 = getConf2(name)
    val val3 = getConf3(name)

   (val1, val2, val3) match {
             case (a: Some[String], _, _) => a
             case (_, a: Some[String], _) => a
             case (_, _, a: …
Run Code Online (Sandbox Code Playgroud)

scala

0
推荐指数
1
解决办法
69
查看次数

标签 统计

scala ×1