@student2018
2018-10-20T01:56:59.000000Z
字数 590
阅读 452
Scala
the more you know about scala type system, the more you can give the scala compiler.
package student.scala
import scala.reflect.ClassTag
object 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(""))
}