Scala 隐式类型之隐式参数

来源:互联网 发布:亿世界系统源码 编辑:程序博客网 时间:2024/05/17 22:12

     隐式参数使用关键字implicit进行标识,当进行使用时,可以不给此标识变量进行传值,而从上下文中进行查找。

1、代码

package com.yy.enhance/** * 隐式参数 */object Implicit_Context{  //隐式值  implicit val name:String = "yy"}object Param{  //柯里化函数  //name添加关键字implicit,使用此函数时可以不给出name的值  def info(age:Int)(implicit name:String){    println(name + ":" + age)  }}object ImplicitParamTest extends App {  //不使用默认的隐式值,给出具体的  Param.info(26)("xx");    //使用默认的隐式值  import Implicit_Context._  Param.info(25)}
2、结果

xx:26yy:25


3、隐式转换和隐式参数结合

package com.yy.enhance/** * 隐式参数和隐式转换 */object ImplicitConversionAndImlicitParam extends App {  //柯里化函数  //implicit:隐式参数,同时对于把匿名函数赋值给变量ordered  //所以ordered是一个函数  def bigger[T](a:T,b:T)(implicit ordered:T => Ordered[T])   = if(ordered(a)>b) a else b      println(bigger(3,4))   println(bigger("yy","xx"))}
结果如下:

4yy



0 0
原创粉丝点击