scala - 表示隐式转换的类型是什么意思
问题描述
scala 语言规范第7.2 节是关于隐式作用域的:它解释了隐式作用域是以某种方式与 type 的部分相关联的模块T
。下面列出了 T 的各个部分。其中之一是
if
T
表示隐式转换为具有参数类型T1,…,Tn
和结果类型的方法的类型U
,T1,...,Tn 和 U 部分的并集;
我不能从中做出正面或反面。我不明白类型 T 如何表示隐式转换。
隐式范围规范的这一部分是什么意思?
解决方案
我相信这是指以下情况
case class Foo(v: Int)
object Foo {
implicit def stringToFoo(s: String) = Foo(42)
}
def f[A](v: A)(implicit ev: A => Foo) = ev(v)
f("woohoo")
其中隐式转换type T = A => Foo
,并且Foo
是与类型参数相关联的部分A
,因此object Foo
成为隐式范围的一部分,stringToFoo
并且无需导入即可解决隐式转换。
推荐阅读
- arduino - 如何在 Arduino 中正确使用 Wire.onReceive
- c# - 在实体框架中编辑对象时出错实体对象不能被实体更改跟踪器的多个实例引用
- c - 如果 CPU 看到虚拟地址,页面错误处理程序如何用物理地址填充页表条目?
- javascript - selectionSort Javascript 动画
- python - 解析标记文件python
- python - 如何创建一个虚拟的双循环链表python?
- html - 在页面加载时从 url 列表中选择一个随机 .mp3 文件以自动播放?
- wcf - 请求被中止:无法创建 SSL/TLS 安全通道 - 没有证书
- r - gsub无法删除R中的空括号
- html - Django - 在基本模板中显示警报消息