คำถามติดแท็ก implicits

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? หมายเหตุ:คำถามนี้ได้รับแรงบันดาลใจจากคำถามอื่น ๆ นี้โดยหวังว่าจะสามารถระบุปัญหาได้ในลักษณะทั่วไป ตัวอย่างถูกคัดลอกมาจากที่นั่นเพราะมันถูกอ้างถึงในคำตอบ


3
ตัวบ่งชี้สกาล่าคืออะไร "โดยนัย"?
ฉันได้เห็นฟังก์ชั่นชื่อที่implicitlyใช้ในตัวอย่างสกาล่า มันคืออะไรและใช้อย่างไร? ตัวอย่างที่นี่ : scala> sealed trait Foo[T] { def apply(list : List[T]) : Unit }; object Foo { | implicit def stringImpl = new Foo[String] { | def apply(list : List[String]) = println("String") | } | implicit def intImpl = new Foo[Int] { | def apply(list : List[Int]) = …
169 scala  implicits 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.