2
สกาล่ามองหาการปลูกฝังที่ไหน?
นัยคำถามที่จะมาใหม่เพื่อ Scala น่าจะเป็น: ที่ไม่ดูคอมไพเลอร์สำหรับ implicits? ฉันหมายถึงโดยปริยายเพราะคำถามดูเหมือนจะไม่ได้เกิดขึ้นอย่างสมบูรณ์ราวกับว่าไม่มีคำพูด :-) ตัวอย่างเช่นค่าสำหรับintegralด้านล่างมาจากไหน scala> import scala.math._ import scala.math._ scala> def foo[T](t: T)(implicit integral: Integral[T]) {println(integral)} foo: [T](t: T)(implicit integral: scala.math.Integral[T])Unit scala> foo(0) scala.math.Numeric$IntIsIntegral$@3dbea611 scala> foo(0L) scala.math.Numeric$LongIsIntegral$@48c610af คำถามอีกข้อที่ติดตามผู้ที่ตัดสินใจเรียนรู้คำตอบของคำถามแรกคือผู้แปลเลือกว่าจะใช้แบบไหนโดยปริยายในบางสถานการณ์ที่มีความคลุมเครือชัดเจน ยกตัวอย่างเช่นscala.PredefกำหนดสองแปลงจากString: หนึ่งไปWrappedStringและอื่น ๆ StringOpsเพื่อ ทั้งชั้นเรียน แต่แบ่งปันมากในวิธีการดังนั้นทำไมไม่ Scala บ่นเกี่ยวกับความคลุมเครือเมื่อพูดเรียกmap? หมายเหตุ:คำถามนี้ได้รับแรงบันดาลใจจากคำถามอื่น ๆ นี้โดยหวังว่าจะสามารถระบุปัญหาได้ในลักษณะทั่วไป ตัวอย่างถูกคัดลอกมาจากที่นั่นเพราะมันถูกอ้างถึงในคำตอบ