Scala类型扩展/推断foo [T](T,T):T
发布时间:2020-12-16 19:14:46 所属栏目:安全 来源:网络整理
导读:假设有三个功能: def foo[T](a:T,b:T): T = a def test1 = foo(1,"2") def test2 = foo(List(),ListBuffer()) 虽然test1的类型为Any,但test2不会编译.这是为什么? List()和ListBuffer()都是Any类型,那么为什么test2也不是Any类型呢?它们都是SeqFactory类
假设有三个功能:
def foo[T](a:T,b:T): T = a def test1 = foo(1,"2") def test2 = foo(List(),ListBuffer()) 虽然test1的类型为Any,但test2不会编译.这是为什么? List()和ListBuffer()都是Any类型,那么为什么test2也不是Any类型呢?它们都是SeqFactory类型,因此Scala能以某种方式推断出test2的类型是SeqFactory吗? foo(ListBuffer(),“”)和foo(List(),“”)按预期工作 解决方法
对我来说看起来像个错误. Scala首先推断Seq [Nothing] {def seq:Seq [Nothing] {def companion:scala.collection.generic.GenericCompanion [Seq [Any]]}; def伴侣:scala.collection.generic.GenericCompanion [Seq [Any]]},然后决定ListBuffer [Nothing]不适合那种类型.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- WebService的axis客户端调用时出错解决方法
- properties – 获取元素高度
- scala – 使用`extends`调用超类型方法,但不能使用自我类型
- vim – 当我将更改保存到html文件时,在Chrome中自动重新载入
- angular2 ng2-bootstrap折叠动画解决方法
- 如何使用xFire开发webService返回复杂对象List
- Angular 2:如何通过CSS Selector在@ViewChild中查找子元素
- scala – 是特定语言的演员模式吗?
- scala – 如何使用Kleisli实现缓存
- adb shell input: keyevent,tap,swipe