Scala多态函数

2019-01-30  本文已影响0人  小样do
object Main extends App {

  def isSorted[A](as: Array[A], ordered: (A, A) => Boolean): Boolean = {
    @annotation.tailrec //尾递归注解,如果编辑器无法将其转化为循环则编译报错
    def loop(n: Int): Boolean = {
      if (n >= as.length) return true
      if (!ordered(as(n), as(n - 1))) return false
      else loop(n + 1)
    }
    loop(1)
  }


  val array = Array("2", "3", "5", "6")

  //def ordered(a: Int, b: Int) = if (a.>=(b)) true else false
  def ordered(a: String, b: String) = if (a.toInt >= (b.toInt)) true else false

  println(isSorted(array, ordered))

}
上一篇下一篇

猜你喜欢

热点阅读