symbol.scala
来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 78 行
SCALA
78 行
/* __ *\** ________ ___ / / ___ Scala API **** / __/ __// _ | / / / _ | (c) 2002-2007, LAMP/EPFL **** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **** /____/\___/_/ |_/____/_/ | | **** |/ **\* */// $Id: Symbol.scala 11127 2007-05-21 14:56:06Z spoon $package scala.reflectimport Predef._abstract class Symbol { val owner: Symbol val name: String val tpe: Type}abstract class GlobalSymbol(val fullname: String) extends Symbol { private val pointIndex = fullname.lastIndexOf(".") val owner: Symbol = if (pointIndex < 0) RootSymbol else Class(fullname.substring(0, pointIndex)) val name: String = if (pointIndex < 0) fullname else fullname.substring(pointIndex+1, fullname.length())}abstract class LocalSymbol extends Symbolcase class Class(override val fullname: String) extends GlobalSymbol(fullname) { val tpe = NamedType(fullname)}case class Method(override val fullname: String, tpe: Type) extends GlobalSymbol(fullname)case class Field(override val fullname: String, tpe: Type) extends GlobalSymbol(fullname)case class TypeField(override val fullname: String, tpe: Type) extends GlobalSymbol(fullname)case class LocalValue(owner: Symbol, name: String, tpe: Type) extends LocalSymbolcase class LocalMethod(owner: Symbol, name: String, tpe: Type) extends LocalSymbolcase object NoSymbol extends Symbol { val owner = null val name = null val tpe = NoType}case object RootSymbol extends Symbol { val owner = NoSymbol val name = "<root>" val tpe = NoPrefix}case class LabelSymbol(val name: String) extends Symbol { val owner = NoSymbol val tpe = NamedType("scala.Unit")}/* Standard pattern match: case reflect.Class(fullname) => case reflect.Method(fullname, tpe) => case reflect.Field(fullname, tpe) => case reflect.TypeField(fullname, tpe) => case reflect.LocalValue(owner, name, tpe) => case reflect.LocalMethod(owner, name, tpe) => case reflect.NoSymbol => case reflect.RootSymbol => case reflect.LabelSymbol(name) => */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?