स्काला की एक उपयोगी विशेषता है lazy val, जहां एक के मूल्यांकन में valदेरी होती है जब तक यह आवश्यक नहीं है (पहली पहुंच में)।
बेशक, lazy valकुछ ओवरहेड होना चाहिए - कहीं न कहीं स्काला को इस बात का ध्यान रखना चाहिए कि क्या मूल्य का मूल्यांकन पहले से ही किया गया है और मूल्यांकन को सिंक्रनाइज़ किया जाना चाहिए, क्योंकि कई थ्रेड्स एक ही समय में पहली बार मूल्य तक पहुंचने का प्रयास कर सकते हैं।
वास्तव में इसकी लागत क्या है lazy val- क्या एक छुपा बूलियन झंडा है जिसे lazy valट्रैक रखने के लिए जुड़ा हुआ है यदि इसका मूल्यांकन किया गया है या नहीं, क्या वास्तव में सिंक्रनाइज़ किया गया है और क्या कोई और लागत है?
इसके अलावा, मान लीजिए कि मैं ऐसा करता हूं:
class Something {
lazy val (x, y) = { ... }
}
क्या यह दो अलग-अलग lazy vals के समान है xऔर yक्या मुझे जोड़ी के लिए केवल एक बार ओवरहेड प्राप्त होता है (x, y)?
bitmap$0वर्तमान कार्यान्वयन (2.8) में क्षेत्र अस्थिर है।