জাভাতে, পরিবেশের ভেরিয়েবলগুলি পড়া সহ সম্পন্ন হয় System.getenv()
।
স্কালায় এটি করার কোনও উপায় আছে?
জাভাতে, পরিবেশের ভেরিয়েবলগুলি পড়া সহ সম্পন্ন হয় System.getenv()
।
স্কালায় এটি করার কোনও উপায় আছে?
উত্তর:
স্কেলা ২.৯ যেহেতু আপনি sys.env
একই প্রভাবের জন্য ব্যবহার করতে পারেন :
scala> sys.env("HOME")
res0: String = /home/paradigmatic
আমি মনে করি জাওয়ার পরিবর্তে স্কালাল এপিআই ব্যবহার করা ভাল। জেভিএম (। নেট, জাভাস্ক্রিপ্ট, নেটিভ ইত্যাদি) এর চেয়ে অন্যান্য প্ল্যাটফর্মগুলিতে স্কালাকে সংকলন করার জন্য বর্তমানে বেশ কয়েকটি প্রকল্প রয়েছে যা জাভা এপিআই-তে নির্ভরতা হ্রাস করা আপনার কোডটিকে আরও বহনযোগ্য করে তুলবে।
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 এর উপস্থিত থাকলে ফু-র ওভাররাইড করার সিনট্যাক্স। Https://github.com/tyypeafehub/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]
ভেরিয়েবলটি অনুপস্থিত থাকলে আপনাকে একটি ত্রুটি ছুঁড়ে দেওয়ার পরিবর্তে একটি ত্রুটি দেবে।