import scala.language.postfixOps
object test12_9_03 {
implicit class X(d:Int) {
def !(): Int = {
var rs = 1 //var 不是val
// println(d)
//计算 d * d-1 * d-* d-3 ... * 1
for (i <- 1 to d) {
rs *= i
}
rs
}
}
def main(args: Array[String]): Unit = {
// 5! = 5*4*3*2*1 = 120
// val rs = 5.!
// 5! === 5.!()
println(10!)
}
}
import prede.pub
import test12_9_03.X
import scala.language.postfixOps
object Test12_9_04 {
//希望使用5!功能
def main(args: Array[String]): Unit = {
println(5!)
}
}
import scala.collection.mutable.ArrayBuffer
//泛型
//需求: 定义一个函数,用来将Array中的中间位置的元素值返回!
// Array(1,2,3,4,5) ===> 3 ===> 中间元素的下标是: 长度/2 ===> 5/2 = 2
// Array(1,2,3,4,5) ===> 3 ===> 4/2 = 2
object Test12_9_05 {
//Array: 表示是一个数组
//[Int]: 表示数组中的元素是 整型
// def getMiddleEle1(arr: Array[Any]): Any = {arr(arr.length / 2)}
def getMiddleEle1(arr:Array[String]):String = { arr(arr.length/2)}
def getMiddleEle2(arr:Array[Int]):Int = { arr(arr.length/2)}
def getMiddleEle3(arr: Array[Double]): Double = {arr(arr.length / 2)}
//泛型函数
//在定义函数的时候,把参数的类型提取出来,变成一个参数,用[]包起来
def getMiddleEle[T](arr: Array[T]): T = {arr(arr.length / 2)}
def main(args: Array[String]): Unit = {
// var a = ArrayBuffer[Int]() //我定义一个可变数组,每一个元素都是Int类型
// a+=100
// a+="xxx"
// a.foreach(println)
var arr1 = Array(1,2,3,4,5)
var arr2 = Array("A","B","C")
var arr3 = Array(1.2,1.3,1.5)
var rs1 = getMiddleEle[Int](arr1)
var rs2 = getMiddleEle[String](arr2)
var rs3 = getMiddleEle[Double](arr3)
println(rs1)
println(rs2)
println(rs3)
}
}