я ударил немного причуда синтаксиса SCALA, я не очень понимаю,Странное поведение с помощью метода Scala синтаксис
object Board {
def getObjectAt(x:Int, y:Int):Placeable = return locations(x)(y)
}
работает отлично. Но
object Board {
def getObjectAt(x:Int, y:Int):Placeable {
return locations(x)(y)
}
}
возвращает ошибку
Board.scala:8: error: illegal start of declaration
return locations(x)(y)
Я нашел некоторые вещи, которые говорят вторая форма убеждает SCALA компилятор, который вы пытаетесь указать расширение к типу возвращаемого Placeable
. Есть ли способ, которым я могу это исправить, или просто не указывать здесь тип возврата?
BTW Ключевое слово "return" является излишним и может быть опущено. В отсутствие явного оператора return Scala возвращает последнее значение, вычисленное методом. Рекомендуемый стиль - избегать явных методов (особенно множественных возвратов). –
Возможный дубликат [Когда использовать знак равенства в объявлении метода Scala?] (Http://stackoverflow.com/questions/944111/when-to-use-the-equals-sign-in-a-scala-method -declaration) –