`

Scala implicit

 
阅读更多

Scala implicit 定义:

 

            隐式转换函数是指在同一个作用域下面,一个给定输入类型并自动转换为指定返回类型的函数,这个函数和函数名字无关,和入参名字无关,只和入参类型以及返回类型有关。注意是同一个作用域

 

            隐式转换的通俗理解就是:在一个作用域内,将参数转换成因是函数得到的结果

 

Scala implicit 举例:

 

 

object PlayDemo extends App{

  implicit def typeConvertor(input:Int):String = input.toString

  implicit def typeConvertor(input:Boolean):String = if(input) "true1" else "false2"
  implicit def typeConvertor():String = ""
  def display(input:String):Unit = println(input)

  def display2(in:String) = println(in)
  println(true)
  display("1212")
  display(12)
  display(true)
  display2(12)
}

 得到输出结果:

 

true
1212
12
true1
12

 得出结论:

   隐式转换所在的作用域,会作用到每一个函数。

参考:http://www.cnblogs.com/rollenholt/p/4118567.html

分享到:
评论

相关推荐

    Scala - Implicit Conversion.docx

    scala implicit conversion scala implicit conversion scala implicit conversion scala implicit conversion scala implicit conversion

    scala 隐式转换与隐式参数的使用方法

    主要介绍了scala 隐式转换与隐式参数的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Scala for the Impatient 2nd (完整英文第二版 带书签)

    《快学Scala》英文第二版: Scala for the Impatient Second Edition Cay S. Horstmann 目录: 1 THE BASICS A1 1 1.1 The Scala Interpreter 1 1.2 Declaring Values and Variables 4 1.3 Commonly Used Types 5 ...

    scala-2.9.2.jar

    import scala.annotation._ trait Func[T] { val zero: T def inc(t: T): T def dec(t: T): T def in: T def out(t: T): Unit } object ByteFunc extends Func[Byte] { override val zero: Byte = 0 ...

    Redis的Scala客户端rediscala.zip

    implicit val akkaSystem = akka.actor.ActorSystem() val redis = RedisClient() val futurePong = redis.ping() println("Ping sent!") futurePong.map(pong => { println(s"Redis replied with a...

    scala in depth

    In particular, this book covers Scala’s implicit and type systems in detail before discussing how these can be used to drastically simplify development. The book promotes the “blended style” of ...

    scala-retry:Scala 的简单重试功能

    标量重试 为 Scala 提供简单的重试功能。 libraryDependencies + = " ... _implicit val policy = RetryPolicy ( maxAttempts = 3 , retryDuration = 1 .second, backOff = ExponentialBackOff , // default is FixedBa

    Scala的集合算子

    集合算子 Scala集合提供了丰富的计算算⼦,⽤于实现集合/数组的计算,这些计算⼦⼀般针对于List、Array、Set、Map、Range、Vector、Iterator等都可以适⽤...def sorted[B >: Int](implicit ord: scala.math.Ordering[B]

    Scala 计算算子

    Scala 计算算子 ...def sorted[B >: String](implicit ord: scala.math.Ordering[B]): List[String] scala> var list = List(a,c,d,b) list: List[String] = List(a, c, d, b) scala> list.sorted res0: Li

    scala-logger

    Scala记录仪 一个简单的日志记录包装器库,提供了Scala惯用语境传播包装Logback记录器。用法(适用于0.8.0及更高版本) 添加到sbt: libraryDependencies + = " ... implicit val ioLog

    fleet-client:车队API的Scala客户端

    用法以下是使用Scala机群客户端的快速入门指南。 有关更多信息,请参见的。 implicit val system = ActorSystem ( " fleet " )implicit val ece = system.dispatcher// define a new fleet configuration// ...

    scala-slick-extras:方便收集常见类型的GetResult Set Parameter实例(以及案例类的帮助器)

    Scala-Slick-extras 方便收集常见类型的GetResult / Set Parameter实例(以及案例类的帮助器)。... interpolation case class Person ( id : Int , name : String , dob : LocalDate ) implicit val per

    kantan.xpath:Scala的XPath包装器

    kantan.xpath 我发现自己不得不定期抓取网站,而且Scala总是使整个过程变得比实际需要更加痛苦-我想,标准XML API可以,但是缺少XPath支持(或实际上可用的类似XPath的东西) DSL)令人沮丧。 kantan.xpath是Java ...

    ignite-scala:用于 Apache Ignite 上的分布式闭包的 Scala API

    点燃Scala 用于上的分布式闭包的 Scala API。 灵感来自。 示例 0 - 集群设置 import org ....implicit val cr = ComputeRunner (compute) 示例 1 - 字符数 import com . twitter . algebird . Semigroup impl

    ValiData:用于创建 ScalaZ 验证的简单 Scala DSL

    Scala 中的简单数据验证框架 ValiData 允许您使用富有表现力且灵活的 DSL 编写基于 Scalaz 的验证。它看起来怎样你可以为你的类定义一个类型验证器,在它的每个属性、一组属性或整个类上放置断言 case class Test...

    Scala—— 12.隐式转换

    隐式转换函数是以implicit关键字声明的带有单个参数的函数,这种函数将会自动应用,将值从一种类型转换为另一种类型。 object boke_demo01 { def main(args: Array[String]): Unit = { //编写一个隐式函数转成 ...

    event-sourcing-using-scala-typeclasses:使用Scala类型类的事件源聚合

    在我的我描述了针对基于Scala类型类的使用聚合的设计。 这是一个客户汇总的示例。 object CustomerAggregateModule { case class Customer ( name : String ) trait CustomerCommand case class ...

    local-implicits:Scala 编译器插件,提供用于处理本地声明的隐式值的语法

    implicit val implied$0 = " Hello, world! " implicitly[ String ] } 在运行时,评估结果为"Hello, world!" . imply方法采用两个参数列表——第一个参数列表包含 1 个或多个要在局部隐式作用域中声明的值,第二...

    Scurses:Scurses,Scala 的终端绘图 API 和 Onions,一个用于简化终端 UI 的 Scurses 框架

    诅咒/洋葱 和是使用简单、优雅的 Scala 在终端中绘制漂亮事物的框架。 提供了一个低级绘图和事件处理 API,而提供了一个带有有用小部件的高级 UI API。 内容: 洋葱用于简单终端 UI 的高级 Scurses 框架 依赖: ...

    SORM0.8.jar

    No tangled implicit constructions polluting your namespace and functionality scattered across multiple components. No manual management of connections. Concurrency. A single SORM instance can safely ...

Global site tag (gtag.js) - Google Analytics