|
import scala.reflect._
import scala.reflect.runtime.universe._
object PartialFunctionTest {
def main(args: Array[String]): Unit = {
val tuple = ("name",10,"wuhan")
def sum(a:Int,b:Int) = a + b
val s = sum _
val s1 = s(_:Int,3)
val s2 = s1(10)
val s1_1 = s(_:Int,6)
val s2_2 = s1_1(10)
def getType[T](x:T)(implicit evide:TypeTag[T]) = typeOf[T]
println(s.getClass) //class com.joe.stu.PartialFunctionTest$$anonfun$1
println(s1.getClass) //class com.joe.stu.PartialFunctionTest$$anonfun$2
println(s2.getClass) //int
println(s2_2.getClass) //int
println(s2) //13
println(s2_2) //16
println(ClassTag(s1.getClass())) //com.joe.stu.PartialFunctionTest$$anonfun$2
println(typeTag[s1.type ]) //TypeTag[s1.type]
println(typeOf[s1.type ]) //s1.type
println(getType(s1)) //Int => Int
println(getType(s)) //(Int, Int) => Int
println(getType(s1).equals(getType(s1_1))) //true
println(getType(s2_2)) //Int
println(getType(s2_2).equals(getType(s2))) //true
}
}
|
|