私はScalaの世界では新しく、式とステートメントの違いは何か、if-elseが式ではなく式に使用される理由を知りたいと思っています。 if-elseに文を使用する方法があれば?Scalaの式と文の違い
答えて
EDIT:コメントで@イェルクWミッタークで指摘したように、この答えは、実際には間違っている:statements do exist in the Scala spec:
ステートメントブロックおよびテンプレートの一部として発生します。ステートメントは、インポート、定義、または式でも、空でもかまいません。
OPの質問に対する実用的な回答として、私はまだ元の回答を残しています。
がPedantically話すのorignal答えは、Scalaでは文のようなものはありません。定義(例:def
とclass
)と式があります。他の言語でのステートメントと呼ばれるものはすべて単なる表現にすぎません。これは式で、Scalaで
println("hello")
:
例えば、多くの人がコンソールに出力し、次の「行」、ステートメントを呼び出します。例えば、それは値を割り当てることができる。この場合
val x = println("hello")
、x
はタイプUnit
の(unit
を発音)値()
が割り当てられます。
「理論」を除いて、常に()
という文を返す式を呼び出すのが一般的です。つまり、上記のprintln("hello")
も声明と考えることができます。
今度はif/else
に戻りましょう。すべてが表現であるため、このif/else
式である:
if (cond) 3 else 5
そのように
if (cond)
println("hello")
else
println("bye")
後者の例では、しかし、if/else
は常に返す()
である(なぜなら、両方println
の戻り()
)したがって、このif/else
というステートメントを呼び出すことができます。
ステートメントはより必須であり、式はより機能的です。それがあなたが探しているものなら。ステートメントは代入と似ているため、 "val"ではなく "var"と同じで、値を出力しないので、値を取得するにはprintln(s "...")が必要です。一方、式はすぐに値を生成し、型を持ちます。
- 1. ScalaのIteratorとStreamの違いは?
- 2. Scalaのマップメソッドとforeachメソッドの違いは?
- 3. rm形式とmp3形式の違い
- 4. ラムダ式とアクションの違い
- 5. SQL文と句の違い
- 6. Scalaで類似したカレータイプの違い
- 7. Scalaのvarとvalの定義の違いは何ですか?
- 8. ScalaのIntとIntegerの違いは何ですか?
- 9. Scalaのa.ne(null)と!= nullの違いは何ですか?
- 10. Scala(Guice)のコンパニオンオブジェクトとシングルトンクラスの違いは何ですか?
- 11. BASIC GOTO文とGOSUB文の違い
- 12. 共有式と配列式の違いは何ですか?
- 13. カスタム数値書式とグループ書式の違いは?
- 14. OMF形式とCOFF形式の違いは何ですか?
- 15. scala @SerializableとJava Serializableの違いは何ですか?
- 16. Scalaでは、AnyとObjectの違いは何ですか?
- 17. LINQ - メソッドとクエリの構文の違い
- 18. Cのバイトと文字の違い
- 19. CString形式の問題とWindows XPと7の違い?
- 20. Spark SQL - gzipとスナップとlzoの圧縮形式の違い
- 21. Scalaの文字列
- 22. Scalaのトレイト構文
- 23. 推測型のScala式の表示
- 24. 構文の違い
- 25. 文字配列とポインタの違い
- 26. 構文エラーと解析エラーの違い
- 27. asp.netラベルテキスト要素と序文の違い
- 28. Func <>とデリゲートとラムダ式の違い
- 29. 行とウィジェットの間のSymfony形式の違い
- 30. scala map getOrElseの構文が良い
"if-else_で文を使用する方法がある場合は_And"どうして? –
@BoristheSpiderだけ好奇心。okよりも不可能な場合 – slavov