Scala隐式转换的简单介绍
这篇文章主要介绍“Scala隐式转换的简单介绍”,在日常操作中,相信很多人在Scala隐式转换的简单介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Scala隐式转换的简单介绍”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
成都创新互联主要为客户提供服务项目涵盖了网页视觉设计、VI标志设计、全网营销推广、网站程序开发、HTML5响应式重庆网站建设公司、成都手机网站制作、微商城、网站托管及网页维护、WEB系统开发、域名注册、国内外服务器租用、视频、平面设计、SEO优化排名。设计、前端、后端三个建站步骤的完善服务体系。一人跟踪测试的建站服务标准。已经为成都垃圾桶行业客户提供了网站设计服务。
Scala的隐式转换,其实最核心的就是定义隐式转换函数,即implicit
conversion function。定义的隐式转换函数,只要在编写的程序内引入,就会被Scala自动使用。Scala会根据隐式转换函数的签名,在程序中使用到隐式转换函数接收的参数类型定义的对象时,会自动将其传入隐式转换函数,转换为另外一种类型的对象并返回。这就是“隐式转换”。
通常建议将隐式转换函数的名称命名为“one2one”的形式。
隐式转换函数与普通函数唯一的语法区别就是,要以implicit
开头,而且最好要定义函数返回类型。
implicit def double2Int(d:Double):Int={ d.toInt } val v:Int = 3.0 println(v)
##注意细节
隐式转换函数的函数名可以是任意的,隐式转换与函数名称无关,只与函数签名(函数参数类型和返回值类型)有关。
隐式函数可以有多个(即:隐式函数列表),但是需要保证在当前环境下,只有一个隐式函数能被识别
class developer { def select(): Unit = { println("select data") }}class admin { def delete(): Unit = { println("delete data") }}object TransformObjectApp { def main(args: Array[String]): Unit = { implicit def deleteData(dev: developer): admin = { new admin } val d = new developer d.select() d.delete() }}
##隐式值
隐式值也叫隐式变量,将某个形参变量标记为implicit,所以编译器会在方法省略隐式参数的情况下去搜索作用域内的隐式值作为缺省参数
到此,关于“Scala隐式转换的简单介绍”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!
本文名称:Scala隐式转换的简单介绍
标题路径:http://scyanting.com/article/ihjcie.html