[解決済み] Scala における => と () => の意味 [重複].
2023-04-08 06:13:40
質問
私はScalaの初心者で、とても気に入っているのですが、時々驚かされることがあります。例えば
clickedCallbacks: List[() => Unit])
誰か教えてください。
=>
と
() =>
はScalaではどういう意味ですか?
どのように解決するのですか?
=>
は、関数のインスタンスを生成するための構文上の糖です。scalaの全ての関数はクラスのインスタンスであることを思い出してください.
例えば
Int => String
という型は
Function1[Int,String]
の型を持つ引数を取る関数です。
Int
を返し
String
.
scala> val f: Function1[Int,String] = myInt => "my int: "+myInt.toString
f: (Int) => String = <function1>
scala> f(0)
res0: String = my int: 0
scala> val f2: Int => String = myInt => "my int v2: "+myInt.toString
f2: (Int) => String = <function1>
scala> f2(1)
res1: String = my int v2: 1
ここで
myInt
に渡された引数の値にバインドされます。
f
と
f2
.
() => T
は、引数を取らずに
T
. と等価です。
Function0[T]
.
()
はゼロパラメータリストと呼ばれると思います。
scala> val f: () => Unit = () => { println("x")}
f: () => Unit = <function0>
scala> f()
x
scala> val f2: Function0[Unit] = () => println("x2")
f: () => Unit = <function0>
scala> f2()
x2
関連
-
[解決済み] Scalaのcase classとclassの違いは何ですか?
-
[解決済み] Scalaでファイル全体を読む?
-
[解決済み】Scalaの記号演算子にはどんな意味があるの?
-
[解決済み】Scalaの型消去を回避するにはどうしたらいいですか?または、なぜ私のコレクションの型パラメータを取得することができないのですか?
-
[解決済み】Scalaにおける中括弧と括弧の正式な違い、また、どのような場合に使用すべきなのか?
-
[解決済み】Scalaの「リフティング」とは何ですか?
-
[解決済み] Scalaで'type'キーワードが何をするのか理解する。
-
[解決済み】Scalaはどこでimplicitを探すのか?
-
[解決済み] Scalaのパターンマッチはなぜ変数で機能しないのですか?
-
[解決済み] パッケージオブジェクト
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] と()=>、Unit=>の違いは何ですか?
-
[解決済み] リスト[Option]からNoneを除外するには?
-
[解決済み] Any、AnyVal、AnyRef、Objectの関係と、Javaコードでのマッピングについて教えてください。
-
[解決済み] Scalaでサブアレイを取得する正しい方法は何ですか?
-
[解決済み] Scalaの自動リソース管理にはどのようなものがありますか?
-
[解決済み] Spark ScalaのDataFrameのカラム名のリネーム
-
[解決済み] scalaでサブディレクトリ内の全ファイルをリストアップするには?
-
[解決済み] Scalaのtraitでvalとdefの使い分けは?
-
[解決済み] Scala で複数の暗黙の引数を持つ関数を定義する
-
[解決済み] Scalaのコレクションにenrich-my-libraryパターンを適用するにはどうしたらいいですか?