1. 概要

このチュートリアルでは、Scala環境変数を読み取る方法を見ていきます。

環境変数を使用すると、アプリケーションが読み取ることができるOS上の特定のキーの値を定義できます。 通常、ファイルを読み取るパスなど、一部の構成でこれらを使用します。

2. 環境変数の読み取り

ほとんどのプログラミング言語と同様に、Scalaでは環境変数を読み取ることができます。 それを行うにはいくつかの異なる方法がありますが、それらは非常に似ているので、何よりも個人的な好みの問題です。

2.1. Scalaのsysオブジェクトの使用

The Scalaで環境変数を読み取る最も一般的で慣用的な方法は、sysパッケージオブジェクトを使用することです。 、環境変数を不変。 Map [String、String]:

scala> sys.env
res0: scala.collection.immutable.Map[String,String] = HashMap(JAVA_MAIN_CLASS_27606 -> scala.tools.nsc.MainGenericRunner, PWD -> /private/tmp, JAVA_ARCH -> x86_64)

scala> sys.env.get("PWD")
res1: Option[String] = Some(/private/tmp)

scala sys オブジェクトは、前のセクションで見たJavaコードの単なる薄いラッパーですが、変数が存在しない場合はnullを返さないため、より慣用的なものになります。

2.2. Scalaのプロパティオブジェクトの使用

それほど一般的ではありませんが、環境変数を読み取る別の方法があります。 これは、scala.util.Propertiesオブジェクトの使用で構成されています。

scala> scala.util.Properties.envOrElse("PWD", "undefined")
res0: String = /private/tmp

scala> scala.util.Properties.envOrElse("RANDOM-VAR-FOO", "undefined")
res1: String = undefined

scala> scala.util.Properties.envOrNone("PWD")
res2: Option[String] = Some(/private/tmp)

2.3. Javaのシステムオブジェクトの使用

ScalaはJavaとの相互運用性を提供するため、Javaと同じユーティリティを使用できます:

scala> System.getenv()
res0: java.util.Map[String,String] = {JAVA_ARCH=x86_64, JAVA_MAIN_CLASS_27606=scala.tools.nsc.MainGenericRunner, PWD=/private/tmp}

scala>  System.getenv("PWD")
res1: String = /private/tmp

scala>  System.getenv("RANDOM-VAR-FOO")
res2: String = null

3. 結論

この記事では、Scalaで環境変数を読み取るさまざまな方法を見てきました。 それを行うにはいくつかの方法がありますが、それらは非常に似ており、簡単です。