1
我在寫一個小的DSL。從其他角度來看,它可以用作自定義控制結構。如何讓操作員在類中調用這個
這裏談到小例子
case class Reference(var value : Double) {
def apply() = value
def update(v : Double) = value = v
}
implicit def toReference(ref:Reference) = ref.value
trait Store {
import scala.collection.mutable.Buffer
val index : Buffer[Reference] = Buffer()
def ++ (v : Double) : Reference = {
val r = Reference(v)
index += r
r
}
implicit def toSelf(u : Unit) = this
}
class ExampleStore extends Store {
val a =() ++ 1.0
val b =() ++ 2.0
val c =() ++ 0.5
}
val store = new ExampleStore
store.c() = store.a + store.b
我想訪問類運營商前面沒有this
但找不到比表情開始指定至少()
其他方式。 A「前綴」形式是什麼,我需要
一些方法來重寫這個例子如下
class ExampleStore extends Store {
val a =++ 1.0
val b =++ 2.0
val c =++ 0.5
}
誰能想到一些技巧,使斯卡拉接受這樣的約定?
compilator應該知道++是不是一個一元運算符,因爲一元運算符列表是有限的 – ayvango