Java'da okuma ortamı değişkenleri ile yapılır System.getenv()
.
Scala'da bunu yapmanın bir yolu var mı?
Java'da okuma ortamı değişkenleri ile yapılır System.getenv()
.
Scala'da bunu yapmanın bir yolu var mı?
Yanıtlar:
Scala 2.9'dan beri sys.env
aynı etki için kullanabilirsiniz :
scala> sys.env("HOME")
res0: String = /home/paradigmatic
Java yerine Scala API'sini kullanmak güzel. Şu anda Scala'yı JVM (.NET, javascript, native, vb.) Dışındaki diğer platformlara derlemek için birkaç proje var. Java API'sındaki bağımlılıkları azaltmak, kodunuzu daha taşınabilir hale getirecektir.
sys.env
sadece bir Map
. Sizin için uygun olan yöntemi kullanabilirsiniz.
sys.env.getOrElse("VARIABLE", "default value")
ortam değişkeninin tanımlanamayacağı yerde de yardımcı oldu.
Bir nesne var:
scala.util.Properties
bunun çevre bilgisi almak için kullanılabilecek bir yöntem koleksiyonu vardır.
scala.util.Properties.envOrElse("HOME", "/myhome" )
Aynı şekilde:
scala> System.getenv("HOME")
res0: java.lang.String = /Users/dhg
Lightbend'in yapılandırma kitaplığı kullanılıyorsa (varsayılan olarak Play2 ve Akka'da)
foo = "default value"
foo = ${?VAR_NAME}
VAR_NAME ortam değişkeni varsa fooyu geçersiz kılmak için sözdizimi. Https://github.com/typesafehub/config#optional-system-or-env-variable-overrides adresinde daha fazla ayrıntı
Tüm ortam değişkenlerini yazdırmak için aşağıdakileri kullanabilirsiniz:
System.getenv.forEach((name, value) => println(s"$name: $value"))
error: missing parameter type
bunu kopyalayıp yapıştırırsanız
(name: String, value: String)
alıyorum error: type mismatch; found : (String, String) => Unit required: java.util.function.BiConsumer[_ >: String, _ >: String]
.
sys.env.get("VARIABLE")
sizeOption[String]
bir hata verecek kullanmak daha iyi bir uygulamadır .