2014-11-06 14 views
6

Używam Scala 2.11.2.Nie można użyć liczby ujemnej w nazwanych parametrach w Scala

Jeśli mam tej klasy Fraction:

case class Fraction(numerator: Int, denominator: Int) {} 

Wtedy to daje błąd:

val f = new Fraction(numerator=-1, denominator=2) 

Ale to nie jest:

val f = new Fraction(-1, denominator=2) 

Komunikat o błędzie jest:

Multiple markers at this line 
- not found: value 
numerator 
- not found: value 
numerator 

Próbowałem użyć liczb ujemnych w innych fragmentach z tym samym wynikiem, ale w dokumentacji nie wspomniano, że nie jest to możliwe.

Czy robię coś nie tak?

Dzięki

Odpowiedz

12

Potrzebny jest przestrzeń pomiędzy = i -, czy można owinąć -1 w nawiasach, w przeciwnym razie kompilator pogubi. Jest tak, ponieważ =- jest prawidłową nazwą metody, więc kompilator nie może stwierdzić, czy przypisujesz wartość do określonego parametru, czy wywołuje metodę.

więc to daje błąd:

val f = Fraction(numerator=-1, denominator=2) 

ale to jest OK:

val f = Fraction(numerator = -1, denominator = 2) 

i tak jest to:

val f = Fraction(numerator=(-1), denominator=2) 
+1

także 'new' Hasło nie jest wymagane. Jest to klasa przypadku. – tuxdna

+0

Tak, naprawiono - dziękuję. – DNA

+0

'licznik = -1' powinno wystarczyć –

Powiązane problemy