scala案例

4 阅读1分钟
package fx
/*
两个函数长的一样!!!!只有参数的类型不同。
定一个名为getMiddle方法,用来获取输入列表中间位置上的元素
1 2 3 4 5 6


 */
object fx1 {
  /*
  def getMiddle(arr:Array[Int]):Int={
    arr(arr.length/2)
  }
  def getMiddle(arr:Array[String]):String={
    arr(arr.length/2)
  }
  //arr3调用方法1:
  def getMiddle(arr:Array[Double]):Double={
    arr(arr.length/2)
  }
   */
  //arr3调用方法2:
  def getMiddle[T](arr:Array[T]):T={  // 参数化类型 函数形参的参数,是一个变量T泛型[T]
    arr(arr.length/2)
  }

  def main(args: Array[String]): Unit = {
    val arr1=Array(1,2,3,4,5,6,7)
    println(s"arr1的中间元素是${getMiddle(arr1)}")
    val arr2=Array("a","b","c")
    println(s"arr2的中间元素是${getMiddle(arr2)}")
    val arr3=Array(1.1,2.2,3.3)
    println(s"arr3的中间元素是${getMiddle(arr3)}")
  }
}
package fx

/*
两个函数长的一样!!!!只有参数的类型不同。
定一个名为getMiddle方法,用来获取输入列表中间位置上的元素
1 2 3 4 5 6

类型 参数化;别把参数的类型写死了!!!
 */
object fx2 {
  // 泛型类
  class Ractangle[X](var w:X,var h:X) {
    def getArea():Unit = {
      println(w , h)
    }
  }

  def main(args: Array[String]): Unit = {
    val r = new Ractangle[Double](1,2)
    r.getArea()

  }
}