`
tongqingqiu
  • 浏览: 24821 次
  • 性别: Icon_minigender_1
  • 来自: 亚特兰大
社区版块
存档分类
最新评论

Scala基础(2)- 值,变量,函数

阅读更多

声明值和变量

值(value)声明以后不能修改其内容

val result = 3 + 4 * 5

result = 0 // error

变量(variable)声明以后可以修改其内容。

var counter = 0
counter = 1 // ok

很C++,Java不同,Scala鼓励尽量使用val,避免副作用的发生。另外,可以看到我们没有像Java一样给result或者counter声明类型。Scala可以通过赋值推测出其类型。当然如果需要,也可以显示标明类型。

var message: String = null

函数

简单的函数定义如下

def max(x: Int, y: Int): Int = {
           if (x > y) x
           else y }

和大多数语言不同,Scala把类型(如Int)放在了参数名后面。个人理解,这样做的原因是很多时候,返回类型是可以省略的。相比较而言,参数名更为重要,所以放在前面。这也符合写程序的思考习惯。另外,函数没有return,默认执行的最后一行就是return,这一点也印证了“表达式即值”的思想,也是REPL中每执行一行,就有个result的原因。

如果函数不带参数,你可以不写括号。

scala> def three() = 1 + 2
three: ()Int
scala> three()
res2: Int = 3
scala> three
res3: Int = 3

这一点也适用于类的方法。这个设计不是随意为之,在谈类和对象时再仔细讲。

1
1
分享到:
评论

相关推荐

    scala-intellij-bin-2020.2.3.zip

    - **调试器支持**:允许设置断点、单步执行、查看变量值,便于调试。 - **Scala REPL**:集成Scala命令行解释器,方便测试代码片段。 - **Maven/Gradle集成**:与构建工具无缝集成,便于项目管理和构建。 3. **...

    scala-intellij-bin-2016.3.9

    1. **Scala编译器和运行时库**:这是开发Scala项目所必需的基础组件,包括Scala编译器(scalac)和Scala标准库。 2. **插件本身**:包含用于在IntelliJ IDEA中集成Scala开发环境的代码和配置文件。这些文件使得IDE...

    scala-intellij-bin-2017.2.13

    Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性。IntelliJ IDEA是一款广受赞誉的Java集成开发环境(IDE),它为开发者提供了丰富的工具和功能来提升开发效率。"Scala-intellij-bin-2017.2.13...

    scala-intellij-bin-0.41

    6. 调试支持:插件支持Scala程序的调试,包括设置断点、单步执行、查看变量值等功能,帮助开发者定位和解决问题。 7. Scala文档查看:插件还可以显示Scala库的API文档,便于查阅和学习。 8. 构建工具集成:与SBT...

    scala-intellij-bin-2017.2.6

    5. **调试器**:支持Scala程序的调试,包括设置断点、步进执行、查看变量值等,帮助开发者理解代码运行过程。 6. **框架集成**:对于使用Scala构建的框架如Akka、Play Framework,插件通常会提供额外的支持,如模板...

    scala-intellij-bin-2019.2.20.zip

    2. Scala运行时库:这是Scala程序运行所必需的库,包含了许多内置类和函数,以及对Java标准库的扩展。 3. Scala IDEA插件:提供了对Scala语言的语法高亮、代码自动完成、错误检测、重构工具、调试器支持等功能,极...

    scala-intellij-bin-2021.3.6.zip

    Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性。IntelliJ IDEA是一款广受欢迎的集成开发环境(IDE),尤其在Java和Scala开发者中有着极高的赞誉。"scala-intellij-bin-2021.3.6.zip"是一个...

    scala-intellij-bin-2020.2.23.zip

    1. **语法高亮与代码提示**:Scala插件提供对Scala语法的准确识别,包括类、对象、函数、变量、类型注解等,同时在编写过程中提供实时的代码补全建议。 2. **错误检查与智能感知**:在编写代码时,插件会实时分析并...

    scala-intellij-bin-2021.1.22.zip

    Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的概念。IntelliJ IDEA是一款广受欢迎的Java开发集成环境,同时也为多种其他语言提供了支持,包括Scala。"scala-intellij-bin-2021.1.22.zip" 是一个...

    scala-intellij-bin-2019.1.2.zip

    Scala是一种强大的多范式编程语言,它融合了函数式编程和面向对象编程的特点。IntelliJ IDEA是一款广受开发者喜爱的集成开发环境(IDE),它提供了丰富的功能来支持各种编程语言,包括Scala。"scala-intellij-bin-...

    scala-intellij-bin-2020.1.39.zip

    Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性。IntelliJ IDEA是一款广受欢迎的Java集成开发环境(IDE),而`scala-intellij-bin-2020.1.39.zip`是专为IntelliJ IDEA设计的Scala编程语言...

    scala-intellij-bin-2019.1.9.zip

    2. **代码补全**:在编写代码时,自动提示可能的函数、变量、类等,提高编码效率。 3. **错误检测**:实时检查代码错误,避免在运行时出现意外问题。 4. **调试器集成**:允许开发者设置断点,单步执行代码,查看...

    scala-intellij-bin-2017.3.11.zip

    Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的概念。IntelliJ IDEA是一款广受赞誉的Java集成开发环境(IDE),而`scala-intellij-bin-2017.3.11.zip`是专为IntelliJ IDEA设计的Scala插件,用于...

    scala-SDK-4.7.0-vfinal-2.12-win32.win32.x86_64

    Scala编译器能够处理函数式编程和面向对象编程的语法,使得开发者可以在一个统一的环境中工作。 2. **Scala库**:这个库提供了大量的内置模块和类,涵盖了从基本类型到高级功能,如并发、模式匹配和XML处理。Scala...

    scala-intellij-bin-2.2.0.zip

    - **函数式编程**:Scala中函数是一等公民,可以作为值传递,也可以作为返回结果。它支持高阶函数、闭包和惰性求值。 - **模式匹配**:Scala允许通过模式匹配来分解数据结构,这是一种强大的代码简化和错误检测工具...

    scala-intellij-bin-2.1.0.15.1.zip

    Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的概念。在Java虚拟机(JVM)上运行,Scala提供了高级语法、类型系统和并发模型,使其成为开发高性能、可扩展应用的理想选择。IntelliJ IDEA是一款...

    scala入门--文档版本

    **Scala**是一种融合了面向对象编程和函数式编程特性的现代编程语言。它被设计成一种可扩展的语言,旨在克服传统编程语言的一些限制,同时保持代码的简洁性和可读性。 - **语言特点**: - **面向对象**: Scala支持...

    scala-intellij-bin-2019.2.40.zip

    Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的概念。IntelliJ IDEA是一款广受欢迎的集成开发环境(IDE),尤其适合Java和Scala等语言的开发。"scala-intellij-bin-2019.2.40.zip"文件是专为...

    scala-2.11.0-M5

    3. **高阶函数**:Scala支持函数作为一等公民,可以赋值给变量、作为参数传递、从函数返回。 4. **匿名函数和lambda表达式**:简化了函数定义,特别是在与集合API配合使用时。 5. **Actor模型**:Scala内置Akka库,...

    scala-intellij-bin-2020.3.18.zip

    2. **智能代码导航**: IntelliJ IDEA的Scala插件允许用户进行类、方法和变量的快速导航,增强了代码可读性和工作效率。 3. **重构工具**: 支持包括重命名、提取方法、移动和删除在内的多种重构操作,帮助开发者维护...

Global site tag (gtag.js) - Google Analytics