var
を宣言したいが、後で関数を割り当てたい。スカラ:即時割り当てなしに関数(ラムダ)を保持するための変数を宣言する
どのようにそのようなvarを宣言しますか?パラメータがなくて何も返さないときは?
が、私はこれを試みたが、それが受け入れられていない。後半のコードでprivate var myFunction :()
が、私はこのようにそれにコードを割り当てると思い、私が想像:そうのよう
myFunction =() => { doSomething() }
var
を宣言したいが、後で関数を割り当てたい。スカラ:即時割り当てなしに関数(ラムダ)を保持するための変数を宣言する
どのようにそのようなvarを宣言しますか?パラメータがなくて何も返さないときは?
が、私はこれを試みたが、それが受け入れられていない。後半のコードでprivate var myFunction :()
が、私はこのようにそれにコードを割り当てると思い、私が想像:そうのよう
myFunction =() => { doSomething() }
:
def doSomething(): Unit = ???
class A {
private var m1: Function0[Unit] = _
// later down the line
m1 =() => { doSomething() }
private var m2:() => Unit = _
// later down the line
m2 =() => { doSomething() }
}
関数リテラルの構文を使用するか、FunctionN
のいずれかの特性を使用して関数の型を宣言するだけです。
あなたの間違いは、無効な構文でmyFunction
を宣言しました。
構文[]
はオプションパーツと{}
必須の部品を示し[visibility] {var|val|lazy val} {variable-name}[:<variable-type>}[=<value]
あります。
可視性は、省略した場合はpublic
とみなされます。アンダースコアについては、その意味を確認することができますin this SO post
ああ、私の間違いは、私はvarに_something_を割り当てなければならないということを理解していないということでした。そして "_"が最善の解決策だと私は思いますか? (私は他の誰かが書いたScalaコードを修正しようとしていますが、自分のアプリを書くためにコンパイル言語を学ぶつもりはありませんが、Swiftのような他の言語を知っていると、とにかく)。 –
@ThomasTempelmannは簡単な説明で編集しました – pedromss
私の主な問題は、戻り値のない関数シグネチャの "可変型"が何であるかを明らかにしていたことです。 –
しないでください。バールは、99%の時間内に何らかの問題に間違った解決策です。 – Dima