คำถามติดแท็ก scala-2.10

1
Scala: TypeTag คืออะไรและฉันจะใช้ได้อย่างไร
สิ่งที่ฉันรู้เกี่ยวกับ TypeTags ก็คือพวกมันเข้ามาแทนที่ Manifests ข้อมูลบนอินเทอร์เน็ตหายากและไม่ได้ให้ความรู้สึกที่ดีกับฉันในเรื่องนี้ ดังนั้นฉันยินดีหากมีคนแบ่งปันลิงก์ไปยังเนื้อหาที่มีประโยชน์บน TypeTags รวมถึงตัวอย่างและกรณีการใช้งานที่เป็นที่นิยม ยินดีต้อนรับคำตอบและคำอธิบายโดยละเอียด

1
รับประเภทโครงสร้างด้วยวิธีการเรียนที่ไม่ระบุชื่อจากแมโคร
สมมติว่าเราต้องการเขียนแมโครที่กำหนดคลาสนิรนามด้วยสมาชิกประเภทหรือวิธีการแล้วสร้างอินสแตนซ์ของคลาสนั้นที่พิมพ์แบบคงที่เป็นชนิดโครงสร้างกับวิธีการเหล่านั้นเป็นต้นซึ่งเป็นไปได้กับระบบมาโครใน 2.10 0 และส่วนสมาชิกประเภทนั้นง่ายมาก: object MacroExample extends ReflectionUtils { import scala.language.experimental.macros import scala.reflect.macros.Context def foo(name: String): Any = macro foo_impl def foo_impl(c: Context)(name: c.Expr[String]) = { import c.universe._ val Literal(Constant(lit: String)) = name.tree val anon = newTypeName(c.fresh) c.Expr(Block( ClassDef( Modifiers(Flag.FINAL), anon, Nil, Template( Nil, emptyValDef, List( constructor(c.universe), TypeDef(Modifiers(), newTypeName(lit), Nil, …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.