@student2018
2018-10-20T01:56:59.000000Z
字数 590
阅读 480
Scala
the more you know about scala type system, the more you can give the scala compiler.
package student.scalaimport scala.reflect.ClassTagobject Execise2 extends App {//1 def foo (msg:String) = println(msg)//改造上面的这个函数,使其可以输出//foo(100) foo(List(1,2,3)// foo(Array(1,2,3) :Array[1,2,3]def foo(msg:String) = println(msg)foo("abc")def foo2[T](msg:T) = msg match { case a:Array[_]=> println("Array[" + a.mkString(",") + "]") ;case _=> println(msg.toString()) }foo2(List(1,2,3))foo2(100)foo2(Array(1,2,3))//2 写一个泛型函数,接受一个Array,//然后返回一个仅包含原数组第一个元素的新数组def first[T:ClassTag](a:Array[T]) = Array(a(0))println(first(Array(1,2,3)).mkString(""))}