2014-11-06 1 views
6

Я использую Scala 2.11.2.Нельзя использовать отрицательное число в названных параметрах в Scala

Если у меня есть эта фракция класса:

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

Тогда это дает ошибку:

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

Но это не так:

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

Сообщение об ошибке:

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

Я попытался использовать отрицательные числа в других фрагментах с тем же результатом, но в документации не упоминается, что это невозможно.

Я что-то не так?

Благодаря

ответ

12

Вам нужно пространство между = и -, или вы можете обернуть -1 в скобках, в противном случае компилятор запутается. Это связано с тем, что =- является допустимым именем метода, поэтому компилятор не может определить, назначаете ли вы значение именованному параметру или выполняете вызов метода.

так что это дает ошибку:

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

, но это нормально:

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

и так это:

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

Также 'new' ключевое слово не требуется. Это класс дела. – tuxdna

+0

Да, исправлено - спасибо. – DNA

+0

'numator = -1' должно быть достаточно –

Смежные вопросы