6

C++ では、次のように記述できます。

#ifdef DEBUG
cout << "Debugging!" << endl;

Scalaに同等のものはありますか?

4

3 に答える 3

-1

特定の条件が満たされた場合にのみコードを実行する場合は、標準の if ブロックを使用できます。

if (SystemProperties.get("debug.mode").exists(_ == "true") {
  println("Debugging!")
}

なんらかの理由でステートメントがコンパイルされた出力に表示されるべきではないことが懸念される場合は、コンパイル時の定数式で if ブロックを使用できます。これらの場合、javac/scalac は、条件が真にならないことを正しく推測するため、ブロックのバイトコードを含めません。(明らかに、ビルドを変更して、デバッグ ビルドの場合は定数 "true"、prod ビルドの場合は "false" を取得する必要があります。)

object Constants {
    final val DEBUG = false
}

// ...

if (Constants.DEBUG) {
  println("Debugging!")
}
于 2013-05-29T16:51:43.727 に答える