您好,登录后才能下订单哦!
这篇文章主要介绍“Scala隐式转换的简单介绍”,在日常操作中,相信很多人在Scala隐式转换的简单介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Scala隐式转换的简单介绍”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
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隐式转换的简单介绍”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。