[解決済み] Scalaのメソッド宣言で等号を使用するのはいつですか?
2023-04-15 10:09:17
質問
等号で。
object HelloWorld {
def main(args: Array[String]) = {
println("Hello!")
}
}
等号なし。
object HelloWorld {
def main(args: Array[String]) {
println("Hello!")
}
}
上記のプログラムはどちらも同じように実行されます。ブログ記事中の
Scalaで嫌いなもの
等号がない場合、このメソッドは
Unit
(Javaの
void
と同じ)なので、値を返すメソッドには等号を使わなければなりません。しかし、値を返さないメソッドはどちらで書いてもよい。
値を返さないScalaのメソッドで等号を使用するためのベストプラクティスは何ですか?
どのように解決するのですか?
実は、私はダニエルにかなり強く反対しています。私は、非等号構文は は決して を使うべきだと思います。もしあなたのメソッドがAPIとして公開されており、誤って間違った型を返してしまうことを心配しているのであれば、明示的な型アノテーションを追加してください。
object HelloWorld {
def main(args: Array[String]): Unit = {
println("Hello!")
123
}
}
等号でない構文はより短く、見た目もすっきりしていますが、混乱の可能性を増やすだけだと思います。私は時々、等号を追加するのを忘れて、私のメソッドが値を返していると信じていましたが、実際にはUnitを返していたのです。非等号と等号を挿入するタイプの構文は視覚的に非常に似ているため、この問題を見逃しがちなのです。
たとえそれが少し多くの仕事を費やすとしても、それらが重要であるとき、私は明示的な型注釈を好みます (すなわち、公開されたインターフェイス)。
関連
-
[解決済み] Scalaでは、'val a. = _' (アンダースコア)は具体的にどのような意味ですか?A = _' (アンダースコア)とはどういう意味ですか?
-
[解決済み] scalaの列挙を理解する
-
[解決済み] 機能的デザインパターン【終了しました
-
[解決済み] scalaでサブディレクトリ内の全ファイルをリストアップするには?
-
[解決済み] なぜScalaのimmutable Setは型が共変しないのか?
-
[解決済み] IntelliJ IDEAでSBTを使用してUber JAR (Fat JAR)をビルドする方法は?
-
[解決済み] パッケージオブジェクト
-
[解決済み] Scalaの場合 クラス継承
-
[解決済み] 上位互換型はどんなときに役立つのか?
-
[解決済み] コレクションのGroovyマップメソッド
最新
-
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のリストを作成するための好ましい方法
-
[解決済み] sbtとGradleの比較 [終了しました]。
-
[解決済み] Scalaでリストを2つのフィールドでソートするには?
-
[解決済み] Scalaでimmutable.Mapをmutable.Mapに変換するにはどうしたらいいですか?
-
[解決済み] なぜScalaのimmutable Setは型が共変しないのか?
-
[解決済み] scala.concurrent.Promiseのユースケースは何ですか?
-
[解決済み] Spark Dataframeの最初の1000行を取得する方法はありますか?
-
[解決済み] Scala Mapのキーと値の両方をマッピングする
-
[解決済み] Scalaで関数を定義する3つの方法の違い
-
[解決済み] Scalaを使用したJoda Timeのクラスブロークンエラー