Ich habe eine Fall-Klasse, die drei gebundene Parameter speichert. Ich mag Begleiter Objekt definieren, die die Klasse von zwei beliebigen Parametern bauen können, etwas, das unten wie die Probe aussieht, das ist offensichtlich falsch:define benannte Argumente in Bezug auf andere Argumente in scala definieren
def test(start : Float = end - duration, duration : Float = end - start, end : Float = start + duration) {
require(abs(start + duration - end) < epsilon)
...
}
val t1 = test(start = 0f, duration = 5f)
val t2 = test(end = 4f, duration = 3f)
val t3 = test(start = 3f, end = 5f)
Welche Tricks, die ich verwenden kann ähnliche Verwendungssyntax zu bekommen?
Beachten Sie, dass dies nur funktioniert, wenn Ihre Argumente unterschiedliche Typen haben. Sie können 'apply' aufgrund der Java-Kompatibilität nicht überladen. (In Java sind die Argumentnamen nicht Teil der öffentlichen Schnittstelle). – gzm0