`
Sam1860
  • 浏览: 100521 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

scala代码一个蛋疼的bug

阅读更多

scala> object Test {
     | def m1 = 1 + 1
     | +1 + 1
     | 
     | def m2 = 1 + 1 +
     | 1 + 1
     | }
defined module Test

scala> Test.m1
res0: Int = 2

scala> Test.m2
res1: Int = 4

 

今天在自己的代码发现了个bug,有个方法返回离奇的数据,该方法类似上面m1的写法。

 

由于 def m1 = 1 + 1已经是完整的定义,而且scala允许在方法体外写表达式, 这些表达式都将作为默认构造函数的代码执行。

所以上面的代码其实是被拆分为方法def m1 = 1 + 1和构造函数的一行表达式 + 1 + 1。为了安全起见以后的方法定义最好加上大括号

 

def m1 = { 1 + 1
     | +1 + 1 }

 

分享到:
评论
1 楼 guibin 2011-07-11  
这难道是BUG吗?

相关推荐

    scala学习源代码

    继承允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码重用。此外,Scala还引入了特质(trait),它类似于接口,但可以包含实现,提供了更灵活的多态性。 函数式编程是Scala的另一大特色。它支持...

    wartremover, 灵活的Scala 代码linting工具.zip

    wartremover, 灵活的Scala 代码linting工具 WartRemover WartRemover是一个灵活的Scala 代码linting工具。文档这里有关于Wartremover的文档,请参考这里。报告问题通过 Scala 编译器扩展树是非常有用的,而不是原始...

    Scala程序设计 例子 源代码

    在"prog-scala-2nd-ed-code-examples-master"这个文件夹名中,"prog-scala-2nd-ed"可能代表"Programming Scala"的第二版,这是一个知名的Scala编程教材。"code-examples"表明这是书中的代码示例,而"master"通常表示...

    用500行scala代码实现sql解析器(英文版)

    8. 用Scala代码实现高效SQL解析器的实际案例:文章展示了一个用Scala代码实现的SQL到C的编译器。这个编译器使用了不到500行的Scala代码,突出了Scala语言在编写高效代码方面的优势。 9. 性能与功能编程的结合:这个...

    Scala代码格式化插件scalariform.zip

    scalariform 是一个用来格式化 Scala 代码的 Eclipse 插件。 同时也提供了各种编辑器插件、命令行工具和开发包 标签:scalariform

    scala-to-java:将Scala代码转换为Java代码的命令行工具

    从StdIn读取scala代码,并将其反编译的Java版本写入StdOut。 用法 确保您已安装Java 1.8和Maven 检出项目 在项目目录中调用mvn clean package 。 在目标目录中scala-to-java.jar将创建scala-to-java.jar 使用java...

    scala:scala代码

    在"scala: scala代码"的描述中,我们可以推测这是一个关于Scala编程语言的学习资源或者项目源代码。 1. **面向对象编程**:Scala是基于Java虚拟机(JVM)的语言,因此它兼容Java的所有类库。它支持类、对象和继承等...

    简单的 Rx 平台游戏_Scala_代码_下载

    本项目是一个基于 Scala 实现的简单 Rx 平台游戏,它利用了 Reactive Extensions(简称 Rx)的概念,这是一种处理异步数据流的编程模型。Rx 是一种强大的工具,允许开发者以声明式的方式处理事件和数据流,从而简化...

    scala-2.11.8.rar

    2.11.8是这个主版本的一个小更新,通常包括bug修复、安全更新和其他次要改进。 源码分析: 1. **编译器源码**:在源码中,你可以看到Scala编译器的实现,包括解析器、类型检查器、优化器等。这有助于理解如何将...

    scala代码demo

    这个"scala代码demo"是一个针对初学者的学习资源,旨在帮助他们掌握Scala的基础知识和编程技巧。 在Scala中,`HelloWorld`通常是最基础的示例,用于演示如何运行一个简单的程序。以下是一个典型的`HelloWorld`程序...

    scala和java混合编译

    当一个项目中同时包含Java和Scala代码时,如何有效地管理和编译这些代码就成为了一个重要的问题。本篇将详细探讨如何在Maven构建工具中实现Java和Scala的混合编译。 首先,我们需要理解Maven的核心概念。Maven是一...

    《Scala实用指南》代码清单

    在《Scala实用指南》的代码清单中,"961.Pragmatic-Scala__ReactivePlatform"可能是一个与响应式平台相关的示例,可能涵盖了Scala与其他响应式框架(如Akka或Reactive Streams)的集成,展示了如何构建可扩展、容错...

    flinkDemo完整代码scala版 - flinkDemo.zip

    【标题】"flinkDemo完整代码scala版"指的是一个基于Scala实现的Apache Flink示例项目,该项目包含了对Flink核心功能的全面演示。它提供了TableAPI、Flink SQL以及DataStream API的实例,同时也涵盖了从socket、Kafka...

    Scala代码积累之spark streaming kafka 数据存入到hive源码实例

    Scala代码积累之spark streaming kafka 数据存入到hive源码实例,Scala代码积累之spark streaming kafka 数据存入到hive源码实例。

    scala3 scala3 scala3 scala3 scala3

    压缩包中的`数源信息样本.xls`可能包含与数据处理相关的示例或测试数据,而`scala3-3.1.3.zip`可能是一个Scala3的库或项目,包含了3.1.3版本的源代码、文档或者其他开发资源。使用这些资源,开发者可以更好地学习和...

    idea的scala插件

    标题"idea的scala插件"指的是IntelliJ IDEA中专门为Scala语言设计的插件,它使得IDEA能够支持Scala语言的开发,提供语法高亮、自动完成、错误检测、代码导航等一系列功能,极大地提高了开发效率。 描述中的"用于...

    差分进化算法的Scala实现_Scala_代码_下载

    变异操作通过线性组合其他个体来改变一个个体,而交叉则将两个或更多个体的某些部分互换,以生成新的个体。 2. **Scala编程基础**:Scala是一种静态类型的JVM语言,融合了面向对象和函数式编程特性。在实现差分进化...

    scala-代码-scala

    scala-代码-scala

    Scala-ts–Scala至TypeScript的代码生成器

    Scala-ts 是一个强大的工具,它允许开发者将 Scala 代码转换为 TypeScript,这在构建富前端应用时非常有用,特别是当你后端使用 Scala 而前端使用 TypeScript 的情况下。这个工具可以确保前后端类型的一致性,提高...

Global site tag (gtag.js) - Google Analytics