これが機能するように、scalaでisSymbol関数を作成するにはどうすればよいですか?
def isSymbol(x:Any) = /* SomeCode */
println(isSymbol('aSimbol)) //true
println(isSymbol("not a simbol")) //false
これが機能するように、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]
}
}