Scala 学习笔记之隐式参数和隐式转换并用
2024-09-02 00:34:17
隐式转换条件:
1. 当表达式类型与预期的类型不同时
2.当对象访问一个不存在的成员时
3.当对象调用某个方法,而该方法的参数声明与传入参数不相匹时。
隐式转换搜索范围:
1. 位于源火目标类型伴生对象中的隐式函数。
2. 位于当前作用域可以以单个标识符指代的隐式函数。
隐式参数条件:
函数中参数带有implicit
隐式参数搜索范围:
在当前作用域所有可以用单个标识符指代的满足类型要求的val和def。
与所要求类型相关联的类型的伴生对象。
隐式参数和隐式转换并用例子:
class A { def say() = {
println("Hi Sky")
}
} object A {
implicit def A2B(a: A): B = {
new B()
}
} class B { } object B { } object ImplicitParamConvert { def sayHello(a: A)(implicit b: A => B) = {
a.say()
} def main(args: Array[String]): Unit = {
sayHello(new A())
}
}
输出结果:
Hi Sky
最新文章
- jquery+ajax+struts2
- 数据结构:二叉树 基于list实现(python版)
- thinkphp自定义标签库
- 【Duke-Image】Week_5 Segmentation
- Android 下进行单元测试 Test run failed:Instrumentation run failed due to 'java.lang.ClassNotFoundException'
- Spark官方文档——独立集群模式(Standalone Mode)
- PowerShell入门(序):为什么需要PowerShell?
- SIP for android
- 我眼中的JAVA的那些数据结构应用
- Flink 1.3.2 Standalone模式安装
- TortoiseSVN设置忽略文件和目录文件夹
- 关于SDK_JDK_JRE_JVM的关系
- MAC IDEA mybatis 逆向工程 无结果文件
- CF979E
- sql之left join、right join、inner join的区别,连接自己时的查询结果测试
- 学习JavaScript计划
- kubernetes实战(二十):k8s一键部署高可用Prometheus并实现邮件告警
- Try .NET
- [C/C++]如何解读返回函数指针的函数声明
- HDU 4685 Prince and Princess 二分图匹配+tarjan
热门文章
- HDU- 3605 - Escape 最大流 + 二进制压位
- 洛谷P1217回文质数-Prime Palindrome回溯
- Codeforces Round #481 (Div. 3) A. Remove Duplicates
- CH 4302 Interval GCD 题解
- 通过CMD命令窗口获取django版本号
- Java微服务(二):服务消费者与提供者搭建
- js中鼠标点击、移动和光标移动的事件触发
- Django2.* + Mysql5.7开发环境整合
- NOIP2002 1.级数求和
- Linux 笔记 - 第八章 文档的打包与压缩