คำถามติดแท็ก type-parameter

1
ความแตกต่างระหว่างการอนุมานประเภทของเมธอดและพารามิเตอร์ประเภทคลาสในการจับคู่รูปแบบ
ทำไมการจับคู่รูปแบบทำงานแตกต่างกันเมื่อพารามิเตอร์ชนิดมาจากวิธีการปิดล้อมซึ่งตรงข้ามกับคลาสที่ล้อมรอบ ตัวอย่างเช่น, trait Base[T] case class Derived(v: Int) extends Base[Int] class Test[A] { def method(arg: Base[A]) = { arg match { case Derived(_) => 42 } } } ให้ข้อผิดพลาด constructor cannot be instantiated to expected type; found : A$A87.this.Derived required: A$A87.this.Base[A] case Derived(_) => 42 ^ ในขณะที่มันประสบความสำเร็จในการรวบรวมเมื่อAเป็นพารามิเตอร์ประเภทวิธี class Test { …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.