您的位置:首页 > 其它

scala进阶20-隐式转换至Ordered与Ordering

2016-08-18 23:13 225 查看
//Ordering是Ordering[T]隐式值
class Pair_Implicits[T: Ordering](val first: T, val second: T) {
def bigger(implicit ordered: Ordering[T]) = {
if (ordered.compare(first, second) > 0) first else second
}
}

//也可以通过implicitly来实现
class Pair_Implicity[T: Ordering](val first: T, val second: T) {
def bigger = if (implicitly[Ordering[T]].compare(first, second) > 0) first else second
}

class Pair_Implicitly_Odereded[T: Ordering](val first: T, val second: T) {
def bigger = {
import Ordered._//隐式将Ordering转换为Ordered
if (first > second) first else second
}
}

object Context_Bounds_Internals {
def main(args: Array[String]): Unit = {
println(new Pair_Implicits(7, 9).bigger)
println(new Pair_Implicity(7, 9).bigger)
println(new Pair_Implicitly_Odereded(7, 9).bigger)
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: