Scala中的Implicit(隐式转换,隐式参数,隐式类)

文章来自:http://www.cnblogs.com/hark0623/p/4196452.html   转发请注明

代码如下:

/**
 * 隐式转换  隐式参数  隐式类
 */

//隐式转换
class Implicit(a: A) {
  def Test: Unit = {
    println("Implicit")
  }
}

class A {

}

object Implicit {
  //隐式转换
  implicit def a2Implicit(a: A) = new Implicit(a)

  def ImplicitMethod(implicit name: String): Unit = {
    println(name)
  }

  //隐式类
  implicit class JiSuan(x: Int) {
    def add(a: Int): Int = a + 1
  }

  def main(args: Array[String]) {
    //隐式转换
    val a = new A
    a.Test

    //隐式参数
    implicit val name = "hark"
    ImplicitMethod
    ImplicitMethod("kxy")

    //隐式类
    println(2.add(2))
  }

}

输出如下:

Implicit
hark
kxy
3

 

posted @ 2014-12-31 19:47  HarkLee  阅读(7824)  评论(1编辑  收藏  举报