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

 

你可能感兴趣的:(scala)