码迷,mamicode.com
首页 > 其他好文 > 详细

scala 隐式转换

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

标签:har   blog   color   gimp   elements   element   隐式   ddr   pac   

先参考这篇文章: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 隐式转换

标签:har   blog   color   gimp   elements   element   隐式   ddr   pac   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!