मैं प्रोग्रामेटिक रूप से मिश्रणों में एक उदाहरण के लिए भेजे गए मानों को बाध्य करना चाहता हूं, और मैं सोच रहा हूं कि ऐसा करने के लिए एक और अधिक अपरिवर्तनीय तरीका है, तो एक छिपी हुई म्यूटेबल ऑब्जेक्ट के साथ। मुख्य रूप से मैं इसे रजिस्ट्री के लिए उपयोग करना चाहता हूं। मेरा वर्तमान दृष्टिकोण निर्माण के बाद सख्ती से अपरिवर्तनीय नहीं है, कोई सुझाव?स्कैला मिश्रित कन्स्ट्रक्टर परिणामों को पंजीकृत करने के लिए
trait Numbers {
lazy val values = holding
private var holding = Set.empty[Int]
protected def includes(i:Int) {
holding += i
}
}
trait Odd extends Numbers{
includes(1)
includes(3)
includes(5)
includes(7)
includes(9)
}
trait Even extends Numbers {
includes(2)
includes(4)
includes(6)
includes(8)
}
इस परिणाम कैसे विधि अधिभावी के बारे में मैं
val n = new Odd with Even
println(n.values)
Set(5, 1, 6, 9, 2, 7, 3, 8, 4)
मैं एक स्काला कंटेनर यहाँ में इस दृष्टिकोण को लागू किया है http://higher-state.blogspot.co.uk/2013/03/scala-210 -simple-di-container.html –