众所周知,结构类型是通过反射实现的。还有其他语言构造使用反射吗?
众所周知,结构类型是通过反射实现的。还有其他语言构造使用反射吗?
这与结构类型密切相关,但是指任何匿名对象实例,即
new { def print = ("hello world") }.print
将使用反射。
http://scala-programming-language.1934581.n4.nabble.com/Structural-types-reflection-td3071599.html
implicit
函数之外定义一个命名类,并定义一个独立的隐式函数将其转换为该类。 - Ken Bloom枚举类型使用反射来查找 nameOf
函数在给定 Enumeration
类型时可能的所有值。这是仅在第一次调用特定 Enumeration
类型的 nameOf
时执行一次的操作。(请参见Enumeration.scala 中的 populateNameMap
方法)。
结构类型中的方法调用取决于反射:
type T = { def startsWith(x:String):Boolean }
def doSomethingWith(x:T) = x.startsWith("abc")
doSomethingWith("abcdef")
这不是一种语言结构,但 ScalaTest 包含 Suite.execute
,它使用反射查找和调用测试方法。
Scala 的模式匹配在幕后使用反射吗?
unapply
方法。对于标准库类,编译器还可以生成本机JVM开关、if-else
结构等。这里不需要反射。 - vadipp