这里有两个REPL课程(灵感来自
this question,虽然我的问题不同):
Welcome to Scala version 2.9.2 (Java HotSpot(TM) 64-Bit Server VM,Java 1.7.0). Type in expressions to have them evaluated. Type :help for more information. scala> def ignore(it: String) = 42 ignore: (it: String)Int scala> ignore(null.asInstanceOf[nothing]) res0: Int = 42
和:
Welcome to Scala version 2.10.0 (Java HotSpot(TM) 64-Bit Server VM,Java 1.7.0). Type in expressions to have them evaluated. Type :help for more information. scala> def ignore(it: String) = 42 ignore: (it: String)Int scala> ignore(null.asInstanceOf[nothing]) java.lang.NullPointerException at .<init>(<console>:9) at .<clinit>(<console>) at .<init>(<console>:7) at .<clinit>(<console>) at $print(<console>) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ...
唯一的区别是第一个是Scala 2.9.2,第二个是2.10.0.
有人可以指出导致这种新行为的2.10中的变化吗?
我知道,将“无事”变成一个愚蠢的事情,而且答案可能是“这是所有未定义的行为,所以只是停止这样做”,但它看起来像是可能对升级程序有影响的那种事物,而我不记得任何讨论的变化,将解释这一点.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。