जावा में, पठन पर्यावरण चर के साथ किया जाता है System.getenv()।
क्या स्काला में ऐसा करने का कोई तरीका है?
जावा में, पठन पर्यावरण चर के साथ किया जाता है System.getenv()।
क्या स्काला में ऐसा करने का कोई तरीका है?
जवाबों:
Scala 2.9 के बाद से आप sys.envएक ही प्रभाव के लिए उपयोग कर सकते हैं :
scala> sys.env("HOME")
res0: String = /home/paradigmatic
मुझे लगता है कि जावा के बजाय स्काला एपीआई का उपयोग करना अच्छा है। वर्तमान में JVM (.NET, जावास्क्रिप्ट, देशी, आदि) की तुलना में स्काला को अन्य प्लेटफार्मों पर संकलित करने के लिए कई परियोजनाएं हैं। जावा एपीआई पर निर्भरता कम करना, आपके कोड को और अधिक पोर्टेबल बना देगा।
sys.envसिर्फ ए Map। आपके लिए जो भी विधि उपयुक्त हो आप कर सकते हैं।
sys.env.getOrElse("VARIABLE", "default value")मेरे मामले में भी मददगार था जहाँ पर्यावरण चर को परिभाषित नहीं किया जा सकता था।
एक वस्तु है:
scala.util.Properties
इसमें पर्यावरण जानकारी प्राप्त करने के लिए उपयोग की जाने वाली विधियों का एक संग्रह है, जिसमें शामिल हैं
scala.util.Properties.envOrElse("HOME", "/myhome" )
उसी तरह:
scala> System.getenv("HOME")
res0: java.lang.String = /Users/dhg
यदि लाइटबेंड की कॉन्फ़िगरेशन लाइब्रेरी का उपयोग किया जाता है (प्ले 2 और अक्का में डिफ़ॉल्ट रूप से) तो आप उपयोग कर सकते हैं
foo = "default value"
foo = ${?VAR_NAME}
एक पर्यावरण चर VAR_NAME मौजूद होने पर foo को ओवरराइड करने के लिए सिंटैक्स। Https://github.com/typesafehub/config#optional-system-or-env-variable-overrides में अधिक जानकारी
सभी पर्यावरण चर मुद्रित करने के लिए , आप उपयोग कर सकते हैं
System.getenv.forEach((name, value) => println(s"$name: $value"))
error: missing parameter typeअगर आप इसे कॉपी-पेस्ट करते हैं तो आर्ग्स पर।
(name: String, value: String), मुझे मिल रहा है error: type mismatch; found : (String, String) => Unit required: java.util.function.BiConsumer[_ >: String, _ >: String]।
sys.env.get("VARIABLE")जो आपकोOption[String]एक त्रुटि फेंकने के बजाय देगा यदि वह चर गायब है।