搜索
搜 索
本版
文章
帖子
用户
图文精华
hadoop-2.6.0+zookeeper-3.4.6+hbase-1.0.0+hive-1.1.0完全分布 ...
首页
Portal
专题
BBS
面试
更多
登录
注册
用户组:游客
主题
帖子
云币
我的帖子
我的收藏
我的好友
我的勋章
设置
退出
导读
淘贴
博客
群组
社区VIP
APP下载
今日排行
本周排行
本周热帖
本月排行
本月热帖
会员排行
About云-梭伦科技
»
专题
›
交流区
›
技术交流
›
Scala
›
怎么会是这样~~~~~
0
2
0
分享
怎么会是这样~~~~~
evababy
发表于 2017-3-15 11:13:47
[显示全部楼层]
阅读模式
关闭右栏
2
4723
本帖最后由 evababy 于 2017-3-15 12:37 编辑
先看一段龌龊的代码
[mw_shl_code=scala,true]class A {
val num = 1
val arr = new Array[Int](num)
}
class B extends A {
override val num = 2
}
val vb = new B
vb.num 等于?
vb.arr.length 等于?[/mw_shl_code]
vb.num=2
vb.arr.length=0 ?????????
vb.arr.length竟然是0,给的看上去似乎有那么点道理又不容易被理解的解释是:当初始化arr的时候发现使用了num,而num是被重写的,有因此时B还没有被初始化,所以num此时是0(与JAVA格格不入)
写多10几年的JAVA代码表示无法接受啊!!!!实在太容易出错了,scala太让人无语了!!
解决办法是:在A类增加对num的修饰 finla 或者 lazy ,也就是说限定了num不能被重写
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
已有(2)人评论
电梯直达
正序浏览
w517424787
发表于 2017-3-15 11:42:23
你在看**的scala讲解
回复
使用道具
举报
显身卡
evababy
发表于 2017-3-15 16:27:41
断断续续的学了2周,彻底跪了!!并发的actor还搞出 akka 貌似也是一个很庞大的库,瞬间觉得浪费两周时间
回复
使用道具
举报
显身卡
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
最佳新人
积极上进,爱好学习
热心会员
经常帮助其他会员答疑
发表新帖
evababy
高级会员
关注
31
主题
258
帖子
12
粉丝
TA的主题
救命啊,启动后特定机器无法加载region导致迁移给其他机器
2019-5-16
alluxio挂载hdfs问题
2019-4-24
hadoop控制台柱形图,求解释啊
2019-4-23
请问如何对标进行全表合并处理?
2018-10-26
用sqoop从mysql导入hbase问题
2018-7-30
24小时热文
Spark机器学习
Spark机器学习算法、源码及实战详解
《深度实践Spark机器学习(吴茂贵)》高清
《Spark机器学习第2版》高清中文PDF
像高手一样发言:七种常见工作场景的说话之
关闭
推荐
/2
中文版ChatGPT
1.无需魔法 2.提高编程效率 3.提高文档能力
查看 »
新手帮助
新手帮助:注册遇到问题,领取资源,加入铁粉群,不会使用搜索,如何获取积分等
查看 »
意见
反馈