首页 > 其他 > 详细

scala 隐式转换

时间:2016-12-21 11:33:15      阅读:226      评论:0      收藏:0      [点我收藏+]

先参考这篇文章:http://www.jianshu.com/p/a344914de895

 

package com.test.scalaw.test



/**
 * scala隐式转换
 */
object ImplicitConversionFun {
  
  //隐式类
  implicit class StringImprovement(val s : String){   
      def increment = s.map(x => (x +1).toChar)
  }
  
  implicit def int2String(x : Int) = x.toString//int 到 String 的转换
  
  //定义一个隐式转换变量参数,隐式变量的值可以不传
  def person(implicit name : String) = {"hello"}  
  
  implicit val p = "mobin"   //p被称为隐式值
  
  class PreferredDrink(name : String){}
  implicit val prompt = new PreferredDrink("Yes, master")
  def greet(name : String)(implicit prompt : PreferredDrink) = {
    println("yes")
  }
   
  //带有隐式参数的函数
  def maxList[T](elements : List[T])(implicit orderer:T => Ordered[T]):T=
    elements match{
    case List()=>
      throw new IllegalArgumentException
    case List(x)=>x
    case x:: rest=>
      val maxRest=maxList(rest)
      if(x>maxRest) x else maxRest
 
    }
  
  def main(args: Array[String]): Unit = {
    println(person("hahaha"))
    person
    person(p)
    greet(p)
  }
}

 

scala 隐式转换

原文:http://www.cnblogs.com/huzi007/p/6207052.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!