相关疑难解决方法(0)

三元运算符类似于?:

我试图避免像这样的结构:

val result = this.getClass.getSimpleName
if (result.endsWith("$")) result.init else result
Run Code Online (Sandbox Code Playgroud)

好吧,在这个例子中,thenelse分支很简单,但你可以对复杂的图像进行成像.我建立了以下内容:

object TernaryOp {
  class Ternary[T](t: T) {
    def is[R](bte: BranchThenElse[T,R]) = if (bte.branch(t)) bte.then(t) else bte.elze(t)
  }
  class Branch[T](branch: T => Boolean) {
    def ?[R] (then: T => R) = new BranchThen(branch,then)
  }
  class BranchThen[T,R](val branch: T => Boolean, val then: T => R)
  class Elze[T,R](elze: T => R) {
    def :: (bt: BranchThen[T,R]) = new BranchThenElse(bt.branch,bt.then,elze)
  }
  class BranchThenElse[T,R](val branch: T => Boolean, val …
Run Code Online (Sandbox Code Playgroud)

scala

88
推荐指数
4
解决办法
6万
查看次数

标签 统计

scala ×1