[解決済み] Scalaで関数を定義する3つの方法の違い
2023-03-07 14:47:12
質問
同じ関数を表現する3つの方法があるとして
f(a) := a + 1
:
val f1 = (a:Int) => a + 1
def f2 = (a:Int) => a + 1
def f3:(Int => Int) = a => a + 1
これらの定義はどのように違うのでしょうか? REPLは明らかな違いを示していません。
scala> f1
res38: (Int) => Int = <function1>
scala> f2
res39: (Int) => Int = <function1>
scala> f3
res40: (Int) => Int = <function1>
どのように解決するのですか?
f1
は整数を受け取り、整数を返す関数です。
f2
は整数を受け取って整数を返す関数を返す、ゼロアリティのメソッドです。(あなたが
f2
を入力すると、それはメソッドの呼び出しになります。
f2
.)
f3
と同じです。
f2
. そこで型推論を採用してないだけだろ。
関連
-
[解決済み] Scalaのオブジェクトとクラスの違い
-
[解決済み】Scalaの型消去を回避するにはどうしたらいいですか?または、なぜ私のコレクションの型パラメータを取得することができないのですか?
-
[解決済み] Scalaの識別子 "implicitly "とは?
-
[解決済み] Scalaでは、'val a. = _' (アンダースコア)は具体的にどのような意味ですか?A = _' (アンダースコア)とはどういう意味ですか?
-
[解決済み] リスト[Option]からNoneを除外するには?
-
[解決済み] ジッパーがコモナドである理由を理解する
-
[解決済み] 末尾再帰関数が最適化されるためのScalaアノテーションは何ですか?
-
[解決済み] Scalaにおけるparam: _*の意味とは?
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 依存するメソッドタイプの説得力のある使用例とは?
-
[解決済み] Scalaの配列の初期化
-
[解決済み] HDFSではなく、ローカルファイルをsc.textFileで読み込む方法
-
[解決済み] ジッパーがコモナドである理由を理解する
-
[解決済み] Scalaにおけるparam: _*の意味とは?
-
[解決済み] Scalaの自動リソース管理にはどのようなものがありますか?
-
[解決済み] Scalaでマップを反転させるエレガントな方法
-
[解決済み] scalaでサブディレクトリ内の全ファイルをリストアップするには?
-
[解決済み] Scalaで2つ以上のリストをまとめてzipで圧縮することはできますか?
-
[解決済み] ScalaにおけるNull/Nothing/Unitの使用法