用法:
trait reflectModule
低级类型化 AST 元编程 API。
提供与基于 AST 的元编程相关的所有函数。
API 中的每种类型 XYZ
都定义为抽象类型 type XYZ
。 XYZ
上的方法由 given XYZMethods
提供,它在 trait XYZMethods
中实现 XYZ
上的扩展方法。 XYZ
模块由 val XYZ: XYZModule
定义,其中包含 XYZModule
中定义的方法。还提供了类型测试(TypeTest
)来对这些类型执行子类型检查。
类型层次结构
+- Tree -+- PackageClause
|
+- Statement -+- Import
| +- Export
| +- Definition --+- ClassDef
| | +- TypeDef
| | +- DefDef
| | +- ValDef
| |
| +- Term --------+- Ref -+- Ident -+- Wildcard
| | +- Select
| |
| +- Literal
| +- This
| +- New
| +- NamedArg
| +- Apply
| +- TypeApply
| +- Super
| +- Assign
| +- Block
| +- Closure
| +- If
| +- Match
| +- SummonFrom
| +- Try
| +- Return
| +- Repeated
| +- Inlined
| +- SelectOuter
| +- While
| +---+- Typed
| /
+- TypedOrTest +----------------·
+- Bind
+- Unapply
+- Alternatives
|
+- CaseDef
+- TypeCaseDef
|
+- TypeTree ----+- Inferred
| +- TypeIdent
| +- TypeSelect
| +- TypeProjection
| +- Singleton
| +- Refined
| +- Applied
| +- Annotated
| +- MatchTypeTree
| +- ByName
| +- LambdaTypeTree
| +- TypeBind
| +- TypeBlock
|
+- TypeBoundsTree
+- WildcardTypeTree
+- ParamClause -+- TypeParamClause
+- TermParamClause
+- TypeRepr -+- NamedType -+- TermRef
| +- TypeRef
+- ConstantType
+- SuperType
+- Refinement
+- AppliedType
+- AnnotatedType
+- AndOrType -+- AndType
| +- OrType
+- MatchType
+- ByNameType
+- ParamRef
+- ThisType
+- RecursiveThis
+- RecursiveType
+- LambdaType -+- MethodOrPoly -+- MethodType
| | +- PolyType
| +- TypeLambda
+- MatchCase
+- TypeBounds
+- NoPrefix
+- Selector -+- SimpleSelector
+- RenameSelector
+- OmitSelector
+- GivenSelector
+- Signature
+- Position
+- SourceFile
+- Constant -+- BooleanConstant
+- ByteConstant
+- ShortConstant
+- IntConstant
+- LongConstant
+- FloatConstant
+- DoubleConstant
+- CharConstant
+- StringConstant
+- UnitConstant
+- NullConstant
+- ClassOfConstant
+- Symbol
+- Flags
源码:
- Quotes.scala
相关用法
- Scala Quotes.reflect用法及代码示例
- Scala Quotes.matches用法及代码示例
- Scala Queue.runWith用法及代码示例
- Scala Queue drop()用法及代码示例
- Scala Queue toMap()用法及代码示例
- Scala Queue.combinations用法及代码示例
- Scala Queue.elementWise用法及代码示例
- Scala Queue.permutations用法及代码示例
- Scala Queue filter()用法及代码示例
- Scala Queue dropWhile()用法及代码示例
- Scala Queue take()用法及代码示例
- Scala Queue.groupBy用法及代码示例
- Scala Queue.addString用法及代码示例
- Scala Queue.sliding用法及代码示例
- Scala Queue tail()用法及代码示例
- Scala Queue diff()用法及代码示例
- Scala Queue max()用法及代码示例
- Scala Queue.sizeIs用法及代码示例
- Scala Queue toArray()用法及代码示例
- Scala Queue.sortWith用法及代码示例
- Scala Queue.groupMapReduce用法及代码示例
- Scala Queue exists()用法及代码示例
- Scala Queue toSeq()用法及代码示例
- Scala Queue.collectFirst用法及代码示例
- Scala Queue clear()用法及代码示例
注:本文由纯净天空筛选整理自scala-lang.org大神的英文原创作品 Quotes.reflectModule。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。