基本的に、あなたはexpicitlyあなたが期待しているどのようなタイプを言うことができます。これはコンパイルされません
def inc(): Int = {
number: Int => number + 1
}
しかしは、あなたが定義したものを起こすので、関数である。
def inc(): (Int) => Int = {
// some function that takes Int, calls it `number` and increment
number: Int => number + 1
}
はもっと近いでしょう、
BUT
あなたが定義した番号は意味を持ちませんクラス の内部でnumber
変数と共通するものはありません。そのため、Scalaコンパイラはタイプを推論できません。 、のIntの戻り値の型が推論されているので、
def inc = (x: Int) => x + 1
指定する必要が:
def inc(): Int = {number += 1; number;}
// will take effect on number field
または
def inc(num: Int): Int = num + 1
あなたは中間 'X'をスキップすることができます注: 'クラスNumber(VAR番号:INT){...}' – elbowich