scala> class A(implicit a: Int);
defined class A
scala> class B()(implicit a: Int);
defined class B
scala> new A()(1)
res1: A = [email protected]
scala> new B()(1)
res2: B = [email protected]
scala> new A(1)
<console>:7: error: too many arguments for constructor A:()(implicit a: Int)A
new A(1)
स्कालैक कक्षा घोषणा में प्रदान की गई निहित पैरामीटर सूची से पहले एक खाली पैरामीटर सूची क्यों डालें?कक्षा की पहली पैरामीटर सूची क्यों लागू नहीं हो सकती है?
यह एक सुविधा है, नहीं एक बग हो रहा है commentary in the scalac sources द्वारा पहचानने:
// परिवर्तित (अंतर्निहित ...) करने के लिए() (निहित ...) अगर अपने ही पैरामीटर अनुभाग
मुझे यह जानकर उत्सुकता है कि यह क्यों किया जाता है। मुझे यह आश्चर्यजनक लगता है।