可能重复:
如何在scala中编写函数isFunction?
我如何在 scala 中编写 isSymbol 函数,这样才能工作:
def isSymbol(x:Any) = /* SomeCode */
println(isSymbol('aSimbol)) //true
println(isSymbol("not a simbol")) //false
可能重复:
如何在scala中编写函数isFunction?
我如何在 scala 中编写 isSymbol 函数,这样才能工作:
def isSymbol(x:Any) = /* SomeCode */
println(isSymbol('aSimbol)) //true
println(isSymbol("not a simbol")) //false
如果您在谈论scala.Symbol:
def isSymbol(x:Any) = x.isInstanceOf[Symbol]
使用反射(Scala 2.10M4),可以按如下方式完成(只是为了展示这个想法,@ChrisJamesC 提供的解决方案对于给定的情况要简单得多):
import scala.reflect.runtime.universe.Flag
import scala.reflect.runtime.universe.typeOf
import scala.reflect.runtime.{ currentMirror => cm }
object Check {
def isSymbol(x: Any): Boolean = {
cm.reflect(x).symbol.asType =:= typeOf[Symbol]
}
}