में जेनेरिक वेरिएबल्स शुरू करना मैं इसे प्रारंभ किए बिना स्केल में जेनेरिक चर घोषित कैसे करूं (या किसी भी मूल्य को आरंभ करना)?स्कैला
def foo[T] {
var t: T = ???? // tried _, null
t
}
में जेनेरिक वेरिएबल्स शुरू करना मैं इसे प्रारंभ किए बिना स्केल में जेनेरिक चर घोषित कैसे करूं (या किसी भी मूल्य को आरंभ करना)?स्कैला
def foo[T] {
var t: T = ???? // tried _, null
t
}
def foo[T] {
var t: T = null.asInstanceOf[T]
t
}
और, यदि आप समारोह में शामिल पसंद नहीं है, आप कर सकते हैं इसे इस तरह से कम करें:
// Import this into your scope
case class Init()
implicit def initToT[T](i: Init): T = {
null.asInstanceOf[T]
}
// Then use it
def foo[T] {
var t: T = Init()
t
}
आप स्थानीय चर को प्रारंभ नहीं कर सकते, लेकिन आप क्षेत्रों के लिए ऐसा कर सकते हैं:
scala> class foo[T] {
| var t: T = _
| }
defined class foo
क्या आपको पता है कि कक्षा चर के लिए अनुमति क्यों है लेकिन विधि चर नहीं है? – IttayD
नहीं, मुझे नहीं पता। –