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