scala 学习总结(一): implicit 函数的使用
来源:互联网 发布:剑网三网络助手 编辑:程序博客网 时间:2024/06/05 06:38
1、implicit 常见的用法
关键字implicit用来标记一个隐式定义。编译器才可以选择它作为隐式变化的候选项。你可以使用implicit来标记任意变量,函数或是对象。
1. 使用implicit 可以实现——隐式参数
object ImplicitTest { /** * Implicit实现隐式参数 */ object Context{ implicit val str:String = "implicit parameter" } object Parameter{ def print(context:String)(implicit prefix:String): Unit ={ println(prefix+":"+context) } } def main(args: Array[String]) { Parameter.print("Hello")("Scala") //在此使用隐式参数 import Context._ Parameter.print("Scala") }}/***************************************************/运行结果:Scala:Helloimplicit parameter:Scala
2.使用implicit 可以实现—— 隐式转换
示例一:class RichFile(val file:File){ def read= Source.fromFile(file.getPath).mkString}object Context{ implicit def file2RichFile(f:File)=new RichFile(f)}object ImplicitDemo { def main(args: Array[String]) { /** * 在此使用了隐式转换 */ import Context.file2RichFile println(new File("c://user//document.txt").read) }}/********************************************************/示例二:class ImplicitTransform { def display(str:String)=println(str) /** *隐式转换函数 */ implicit def typeConvertor(arg:Int) =arg.toString implicit def typeConvertor(arg:Boolean)=if(arg) "true" else "false" def main(args: Array[String]) { display(123) }}备注: 1.隐式转换函数个函数名无关,只与传入参数类型和返回类型有关 2.在同一个函数作用域下,不能同时有两个相同输入类型和返回类型的函数
0 0
- scala 学习总结(一): implicit 函数的使用
- scala implicit 学习简记
- scala implicit使用
- scala implicit class使用
- Scala的implicit
- scala implicit 关键字用法总结
- Scala 学习(一)--- 方法和函数
- Scala总结(一)
- Scala中隐式转换(implicit conversion)的优先顺序
- Scala中隐式转换(implicit conversion)的优先顺序
- Scala中隐式转换(implicit conversion)的优先顺序
- Scala中隐式转换(implicit conversion)的优先顺序
- Scala implicit
- Scala implicit
- Scala implicit
- Scala implicit
- scala implicit
- Scala implicit
- python requests 模拟网站登录
- java 提取曲线图数值并导出excel
- Android中activity任务亲和力问题
- 支持泛型AVL Tree的简单实现,并和STL map比较了插入,删除,查找的性能
- 集群环境下文件上传方法与运维(Uploading a File to a Service)
- scala 学习总结(一): implicit 函数的使用
- Hand DoFs
- c# 导出excel 组件比较(npoi vs openxml)
- aes加密文件
- web.xml配置详解
- netty 粘包问题处理
- Java 拷贝文件夹
- iOS开发实用知识点记录(持续更新)
- Arduino软串口调试