Scala学习笔记(2)-基础语法

简介:

秉着简洁而不失完整的的原则,这章只把Scala主要语法和与Java不同的内容列出来,以后章节也如此,内容以简洁为主,太长了自己都被吓着了,也没耐心看下去。

1.Scala解释器使用,这里不做介绍,有IDE这玩意一般用不着。

2.基本数据类型

Java原始类型在scala包里都有对应的类。例如,scala.Boolean对应着Java的boolean。scala.Float对应着Java的float。当你把你的Scala代码编译成Java字节码,Scala编译器将使用Java的原始类型以便获得其带来的性能益处。

3.定义变量

Scala有两种变量,val和var。val类似于Java里的final变量。一旦初始化了,val就不能再赋值了。与之对应的,var如同Java里面的非final变量。var可以在它生命周期中被多次赋值。

val msg1=”hello scala”

var msg2=”hello world”

仔细看上面定义的2个变量好像都没有类型声明,这是怎么回事呢?这就要说到Scala的类型推断(type inference),因为你用了一个字符串来初始化msg变量,Scala推断msg的类型是String。你也可以显式地定义类型,有些时候也应该这么做。显式的类型标注不但可以确保Scala编译器推断你倾向的类型,还有助于以后代码的阅读。

val msg : String=”hello scala” 与Java不同的是类型声明在变量后面,用一个”:”分隔。

4.定义函数

上面已经定义了变量,现在开始学习怎么定义一个函数

def max(x: Int, y: Int): Int = { //定义函数 
    if (x > y) x 
    else y 
  }

max(3,7)  //调用函数

自己对照看与 java函数有什么不同,函数体只有一句的大括号可以省略写成 :

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

结果类型也去掉了,编译器类型推断可得出,尽管如此带上结果类型也是一个好习惯,便于其他人阅读代码。

image

Scala的Unit结果类型指的是函数没有返回有用的值。Scala的Unit类型比较接近Java的void类型,而且实际上Java里每一个返回void的方法都被映射为Scala里返回Unit的方法。因此结果类型为Unit的方法,仅仅是为了它们的副作用而运行

注:java里的i++和++i在scala里是行不通的。

本文来自云栖社区合作伙伴“开源中国”

本文作者:山海经

原文链接

相关文章
|
5月前
|
大数据 Scala
大数据生态思维导图____2021最新最全Scala语法思维导图!(待更新)
大数据生态思维导图____2021最新最全Scala语法思维导图!(待更新)
22 0
|
6月前
|
Java 编译器 Scala
158 Scala基础语法
158 Scala基础语法
36 0
|
7月前
|
安全 Java 编译器
Scala语言入门:初学者的基础语法指南
作为一种在Java虚拟机(JVM)上运行的静态类型编程语言,Scala结合了面向对象和函数式编程的特性,使它既有强大的表达力又具备优秀的型态控制
29 0
|
8月前
|
Java Scala C++
Scala选择和循环语法
Scala选择和循环语法
26 0
|
8月前
|
SQL 分布式计算 Java
Scala基础语法
Scala基础语法
59 0
|
Java 大数据 Scala
大数据开发基础的编程语言的Scala的基础语法
Scala是一种基于JVM的多范式编程语言,它支持面向对象编程和函数式编程,并具有强大的类型推导机制和静态类型检查。本文将介绍Scala的基础语法,帮助开发者快速入门这门语言。
58 0
|
Java Scala 开发者
Scala 下界介绍和应用实例 | 学习笔记
快速学习 Scala 下界介绍和应用实例
93 0
Scala 下界介绍和应用实例 | 学习笔记
|
Scala 开发者
Scala 上界介绍和应用实例2 | 学习笔记
快速学习Scala上界介绍和应用实例2
73 0
Scala 上界介绍和应用实例2 | 学习笔记
|
Java Scala 开发者
Scala 泛型介绍和应用实例2 | 学习笔记
快速学习 Scala 泛型介绍和应用实例2
59 0
Scala 泛型介绍和应用实例2 | 学习笔记
|
Scala 开发者 索引
关联 Scala 源码|学习笔记
快速学习关联 Scala 源码。
180 0