首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Scala编译器发现了CanBuildFrom的哪个实例?

Scala编译器发现了CanBuildFrom的哪个实例?
EN

Stack Overflow用户
提问于 2011-11-28 08:27:39
回答 2查看 1K关注 0票数 7

所有人。请原谅我在Scala上问了一个愚蠢的问题。虽然我已经用Scala编程大约两年了,但我仍然发现很难理解implicit的用法。让我们举一个例子来讨论一下:

代码语言:javascript
运行
AI代码解释
复制
Array(1,2,3,4).map(x => x) 

如果你查找scaladoc,你不能在Array类上找到map方法。map可以应用于Array(1,2,3,4)的原因是在scala.Predef中定义了一个隐式函数implicit def intArrayOps (xs: Array[Int]): ArrayOps[Int]

但是,有两个参数列表,其中第二个参数列表写为implicit bf: CanBuildFrom[Array[T], B, That])。现在,我想知道当在Array(1,2,3,4)上应用map时,编译器在哪里为类型CanBuildFrom找到合适的参数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-28 09:45:03

隐式解决包括在伴生对象中搜索隐式参数的类型,以及在伴生对象中搜索隐式参数类型参数。在上面的示例中,map的签名如下所示

代码语言:javascript
运行
AI代码解释
复制
def map[B, That](f: (Int) => B)(implicit bf: CanBuildFrom[Array[Int], B, That]): That

因为我们对此没有类型要求,所以现在可以忽略它。在我们查看本地和容器作用域后,没有找到匹配的隐式,下一个要查找隐式的地方将是CanBuildFrom的伴生对象。但是,它没有伴生对象。所以我们继续在数组中寻找隐式的。我们找到了一个形式为

代码语言:javascript
运行
AI代码解释
复制
implicit def canBuildFrom[T](implicit m: ClassManifest[T]): CanBuildFrom[Array[_], T, Array[T]]

由于我们没有类型要求和隐式匹配,"That“被强制为ArrayInt类型,并完成了我们的类型。

票数 9
EN

Stack Overflow用户

发布于 2011-11-28 09:52:59

StackOverflow上的其他问题部分回答了这个问题。让我试着总结一下:

您需要知道的第一部分是Scala compiler looks for implicits在哪里。您可以找到有关CanBuildFrom here的更多详细信息。

如果您已经理解了答案中提到的关于隐式‣的内容,那么您应该看看Scala的构造。它们的继承层次结构在here和for List here中得到了解释。所有这些都是用Builders构建的。这在一个关于breakOut的问题中有详细的解释。

为了积累你的知识,你应该知道如何拉皮条。此外,在this question的StackOverflow上对此进行了解释。

请注意,Scala-Tag-Wiki中总结了有关StackOverflow的最佳答案。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8293173

复制
相关文章
sql中对嵌套查询的处理原则_sql的多表数据嵌套查询
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169416.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
5.8K0
java中sql如何嵌套查找_SQL 查询嵌套使用[通俗易懂]
id int primary key auto_increment, — 主键id
全栈程序员站长
2022/09/22
4.5K0
java中sql如何嵌套查找_SQL 查询嵌套使用[通俗易懂]
python 中的嵌套类
能够看到 类中 又定义了 类 ,这种情况我们称之为嵌套类 。给一个简单 demo 来认识嵌套类 。
py3study
2020/01/10
4.1K0
python中的嵌套类
在.NET和JAVA语言中看到过嵌套类的实现,作为外部类一个局部工具还是很有用的,今天在python也看到了很不错支持一下。动态语言中很好的嵌套类的实现,应该说嵌套类解决设计问题同时简化了程序,值得学习。
py3study
2020/01/08
3.6K0
单脉冲测角处理
本文介绍的雷达系统采用单脉冲体制,具备精密跟踪的能力。每发射一个脉冲,天线能同时形成若干个波束,将各波束回波信号的振幅和相位进行比较,当目标位于天线轴线上时,各波束回波信号的振幅和相位相等,信号差为零;当目标不在天线轴线上时,各波束回波信号的振幅和相位不等,产生信号差,驱动天线转向目标直至天线轴线对准目标,这样可测出目标的方位角与俯仰角。从各波束接收的信号之和,可测出目标的距离,从而实现对目标的测量和跟踪功能。单脉冲雷达已经广泛应用,在军事上主要用于目标识别、靶场精密跟踪测量、导弹预警和跟踪、导弹再入弹道测量、火箭和卫星跟踪、武器火力控制、炮位侦查、地形跟随、导航、地图测绘等,在民用上主要用于交通管制。
数字芯片社区
2020/07/20
5.2K1
单脉冲测角处理
如何在JavaScript中访问暂未存在的嵌套对象
JavaScript 是个很神奇的东西。但是 JavaScript中的一些东西确实很奇怪,让人摸不着头脑。其中之一就是当你试图访问嵌套对象时,会遇到这个错误
前端小智@大迁世界
2019/07/02
8.3K0
sql中的嵌套查询_sql的多表数据嵌套查询
测试的时候发现取出的是一条数据, 因为测试的时候是一天中的两条数据, 没有不同的日期,所以当日以为是正确的 ,然而第二天写入数据了,要取出数据,却发现没有数据, 返回空的行, 以为都是代码又有问题 了,找了半天都没有 ,仔细看看了存储过程中的代码,发现这样返回的数据的确是空的。
全栈程序员站长
2022/09/22
7.3K0
如何使用Python中Django模板?
https://www.mattlayman.com/understand-django/templates-user-interfaces/
程序员小猿
2021/01/19
4K0
如何使用Python中Django模板?
如何使用Vue中的嵌套插槽(包括作用域插槽)
最近我弄清楚了如何递归地实现嵌套插槽,包括如何使用作用域插槽来实现。起因是我想看看是否可以构建一个复制v-for指令但仅使用template组件。
前端小智@大迁世界
2020/05/27
5.1K0
nginx 如何实现if嵌套
nginx 不支持 if 嵌套,也不允许在 if 中使用逻辑判断,会报如下错误: nginx: [emerg] "if" directive is not allowed 当业务需要多个条件判断时,可以借助中间变量来实现 如:我们的网站在 pc 端有多个子域名, 而移动端只有一个域名,对应关系如下: www.test.com --> m.test.com sub1.test.com --> m.test.com/sub1 sub2.test.com --> m.test.com/sub2 sub3.tes
章鱼喵
2019/11/27
2K0
一段批处理脚本(for 嵌套)
可以看到,按日期生成了目录。以20170619目录下的文件举例,前两个文件其实大小都一样,是重复的。判断规则就是红色部分重名。
黯然销魂掌
2018/09/27
1.5K0
Elasticsearch聚合的嵌套桶如何排序
在elasticsearch的聚合查询中,经常对聚合的数据再次做聚合处理,例如统计每个汽车品牌下的每种颜色汽车的销售额,这时候DSL中就有了多层aggs对象的嵌套,这就是嵌套桶(此名称来自《Elasticsearch 权威指南》),如下图所示:
程序员欣宸
2019/05/27
4K0
Swift代码中的嵌套命名法
Swift支持与其他类型嵌套命名,尽管它还没有专用的命名关键词。下面我们来看看,如何使用类型嵌套来优化我们代码的结构。
莫空9081
2021/03/01
1.7K0
选择块参照中嵌套的实体
在利用ObjectARX进行CAD二次开发时,如何选择块参照中嵌套的实体,并进行进行下一步操作?这个问题的难点是:如何判断用户选中的实体到底是块参照里面的非嵌套对象实体?还是块参照中嵌套的块参照的实体?本文利用全局函数acedNEnsSelP解决了这个问题,并可实现:如果用户选择块参照中嵌套的实体,直接视为用户选择了这个嵌套的块参照,效果如图。
用户3519280
2023/07/31
3051
iframe嵌套页面拒绝访问_苹果cms模板修改导航
在模板里面 友情链接里面得A标签里面添加{$field.target} 标签 即可
全栈程序员站长
2022/11/08
2.6K0
Android中RecyclerView嵌套RecyclerView
这两天在做一个新的APP,在考虑用户体验上要一个两级的列表嵌套,于就想看看RecyclerView是否能做出这样的效果,自己写了一个DEMO来做一下测试,最后的效果还是比较满意的。下面我就说一下RecyclerView嵌套RecyclerView的实现。
Vaccae
2019/07/25
7.8K0
Java中嵌套类用法
在Java中,可以在另一个类中定义一个类。这些类称为嵌套类。它们使您能够对只在一个地方使用的类进行逻辑分组。因此,这增加了封装的使用,并创建了更具可读性和可维护性的代码。
程序你好
2018/09/29
2.1K0
myeclipse 2017 CI 中如何修改Servlet模板
  在实际开发中,这些生成的代码和注释一般我们都用不到的,每次都要手工删除这些注释和代码,很麻烦,因此可以根据开发的实际情况修改Servlet的模板代码,改成符合实际开发需求的模板代码。
黑泽君
2018/10/11
9860
myeclipse 2017 CI 中如何修改Servlet模板
从嵌套结构中取值时如何编写兜底逻辑
对a解构时赋予的默认值(空数组),仅当b.a的值为undefined时才会生效,如果b.a的值为null,默认值就无法生效,使得第二行调用map方法的代码直接报错,所以第一行代码兜底并没有做好。
大史不说话
2020/11/03
3K0
Linux内核18-中断和异常的嵌套处理
讲解这部分之前,我们先阐述一个概念-内核控制路径:就是一段在内核态执行的代码,比如说,异常处理程序,中断处理程序,系统调用处理,内核线程等等在内核态执行的代码。所以,内核态程序被激活的方式有:
Tupelo
2022/08/15
2.2K0
Linux内核18-中断和异常的嵌套处理

相似问题

角获取ng-绑定来处理嵌套指令

66

ng-模板内的角6嵌套ViewChild为空。

30

角js中的嵌套ng-重复

23

角ng-递归模板中的选项

11

如何在角中实现指令(ng-模板)?

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档