知道我怎么能避免这些重复的类参数?
abstract class XClass( var x: Int, var y: Int, var w: Int, var h: Int) {...}
abstract class MXClass( var xS: Int, var yS: Int, var wS: Int, var hS: Int)
extends XClass (xS, yS, wS, hS)
class PXClass( var xP: Int = 0, var yP: Int = 0, var wP: Int = 0, var hP: Int = 0)
extends MXClass (xP, yP, wP, hP)
def draw(g: Graphics2D) {
g fillRect (x, y, w, h)
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个这样的东西GUI: …
我想以不同的方式检查如何扩展此代码,然后在需要时将这些功能扩展混合在一起.
// Initial object algebra interface for expressions: integers and addition
trait ExpAlg[E] {
def lit(x : Int) : E
def add(e1 : E, e2 : E) : E
}
// An object algebra implementing that interface (evaluation)
// The evaluation interface
trait Eval {
def eval() : Int
}
// The object algebra
trait EvalExpAlg extends ExpAlg[Eval] {
def lit(x : Int) = new Eval() {
def eval() = x
}
def add(e1 : Eval, e2 : Eval) = …Run Code Online (Sandbox Code Playgroud) 我有一个像这样的数组:
val a = Array(0, 6, 15, 0, 20, 0)
Run Code Online (Sandbox Code Playgroud)
如果我使用该reduceLeft函数来查找此数组中的最小值,例如:
val f = (x: Int, y: Int) => x min y
val rlf = a.reduceLeft(f)
Run Code Online (Sandbox Code Playgroud)
我怎么能找到这个数组中除了比较之外的最小数字0,因为在我的情况下我使用0的默认值不是我要比较的东西?!