package test55
//隐式转换
//1.隐式函数
//2.隐式类
//3.隐式对象
//4.函数的隐式参数//泛型:类型参数化。
//Pair 约定一对数据
class Pair[T](var x:T, var y:T)
//泛型的应用场景:
//1.泛型函数
//2.泛型类
//3.泛型特质
object test2 {def main(args: Array[String]): Unit = {val p1=new Pair[Int](1,2)val p2=new Pair[Double](1.0,2.3)val p3=new Pair[String]("大陆","长空")}
}
package test55
//泛型特质
object test3 {//定义一个日志//泛型特质:X是泛型名称,可以更改。trait Logger[X]{val content:Xdef show():Unit}//定义一个类去实现特质class FileLogger extends Logger[String]{override val content: String = "file"override def show():Unit={println(content)}}def main(args: Array[String]): Unit = {val fileLogger=new FileLogger()fileLogger.show()}}
package test55
//定义一个函数,用来求List元素中的最大值
object test4 {//请完成你的代码//(implicitly ev: T =>Ordered[T])//T类型必须是能够进行大小比较的类型!!!def getMax[T<:Ordered[T]](list: List[T]):T={list.reduce((a,b)=> if(a > b) a else b)}
//1 2//true false//new Stud new Studcase class stu(name:String,age:Int)def main(args: Array[String]): Unit = {
// val li=List(Pat("dog",12),Pat("cat",14))
// val rs3=getMax(li)val rs1=getMax(List[Int](1,2,3))//3println(rs1)val rs2=getMax(List[Double](1,2,23,2.2))//4.0println(rs2)}