Scala基本语法是什么?

上次小编给大家介绍了Scala语言的特点,这次我们来看下Scala的基本语法。如果我们有Java基础,那么学习Scala也是一件比较轻松的事。
学习任何一门语言,我们先看的就是它的数据类型,Scala也不例外,我们先看看它的数据类型是什么样的。Scala的数据类型首先分成了两大类:AnyVal和AnyRef。AnyVal对应Java中的基本数据类型,AnyRef对应Java中的引用数据类型。AnyVal具体来说又包括了7+2种:7种数值类型,Byte、Short、Int、Long、Float、Double、Char;2种非数值数据类型,Boolean 、Unit。其中的Unit表示空值,相当于Java中的void。AnyRef包括Scala中的class、object以及Trait(特质)。AnyVal和AnyRef还有一个公共的父类,就是Any类型。
了解了Scala中的数据类型,我们再看下Scala中的变量。在前面我们讲Scala的特点曾经提到,Scala中声明变量可以不指明具体数据类型,统一用var或val声明。如:var i=3或val i=3。那么var和val的区别就是,var声明的是变量,值可以再改变。而val声明的相当于常量,值在声明后不可以再改变。所以,声明时采用var还是val,要视具体情况而定了,如果没有特别要求,通常采用val声明。
接下来,我们再看看Scala中的条件表达式。条件语句类似于Java语言,语法格式如下:

但有几点需要注意的是:

  1. 条件表达式都是有返回值的,可以赋值给变量。如:
  2. 条件表达式的返回值类型由每个分支的最后一个表达式决定。如果每个分支的返回值类型不一致,则采用他们最小的父类作为返回值类型。

上面的条件语句,如果赋值给变量,变量的类型就只能采用String和Int的最小父类,就是Any类型了。
最后,我们再来看看Scala中的循环语句。循环语句有for循环和while/do while循环。使用循环可以方便地遍历数组、集合或元组。
Scala中for循环有很多格式。如下面所示,(假定arr是一个数组):
1)增强for循环

2)使用索引的for循环

3)带守卫的for循环

4)加yield推导式的for循环

此时,会生成一个新的数组,数组的每个元素值比原先大5。
Scala中的while/do while循环,跟Java没太大区别,在此我们就不赘述了。要注意的就是Scala中的循环是没有break或continue语句的,我们需要加条件实现类似的功能。
好了,这次Scala基本语法我们就介绍到这了,希望能帮助您在Scala学习中顺利扬帆起航。
更多的知识大家可以点击http://heze.offcn.com/, 希望能给你带来帮助!

原文地址:https://blog.51cto.com/14669527/2467954

时间: 2024-11-08 16:48:52

Scala基本语法是什么?的相关文章

Scala基础语法 (一)

如果你之前是一名 Java 程序员,并了解 Java 语言的基础知识,那么你能很快学会 Scala 的基础语法. Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的. 我们可以认为 Scala 程序是对象的集合,通过调用彼此的方法来实现消息传递.接下来我们来理解下,类,对象,方法,实例变量的概念: 对象 - 对象有属性和行为.例如:一只狗的状属性有:颜色,名字,行为有:叫.跑.吃等.对象是一个类的实例. 类 - 类是对象的抽象,而对象是类的具体实例. 方法 - 方法

【Scala学习之一】 Scala基础语法

环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark-1.6 Scala是一种混合功能编程语言,类似java,运行于JVM,集成面向对象编程和函数式编程的各种特性.(1)Scala可以与Java互操作:它用scalac这个编译器把源文件编译成Java的class文件,从Scala中调用所有的Java类库,也同样可以从Java应用程序中调用Scala的

Scala基础语法(声明定义、标识符命名、Scala脚本入门)

一.声明与定义(赋值) 1.val, 常量声明   val x:T val x:T=e 2.var, 变量声明   var x:T var x:T=e ?类型省略(默认类型)val x=e var x=e ? 声明省略(连续声明) val x1,x2,x3 等价于 val x1;val x2; var x1,x2,x3:T=e  等价于  var xn:T=e 3.def,函数声明def abc(xn:T):T*=e def adder(m:Int,n:Int) =m+n def adder()

scala 基础语法

文章内容全部来自:http://twitter.github.io/scala_school/zh_cn/index.html 表达式 scala> 1 + 1 res0: Int = 2 值 你可以给一个表达式的结果起个名字赋成一个不变量(val). scala> val two = 1 + 1 two: Int = 2 变量 如果你需要修改这个名称和结果的绑定,可以选择使用var. scala> var name = "steve" name: java.lang

scala 常用语法

Clojure首先是FP, 但是由于基于JVM, 所以不得已需要做出一些妥协, 包含一些OO的编程方式Scala首先是OO, Java语法过于冗余, 一种比较平庸的语言, Scala首先做的是简化, 以更为简洁的方式来编写OO, 主要利用‘type inference’能推断出来的, 你就不用写, 但如果仅仅这样, 不如用python所以Scala象其名字一样, “可伸展的语言”, 它是个大的集市, 它积极吸纳其他语言的优秀的特征, 最重要的就是FP, 你可以使用Scala来写OO, 但它推荐使

scala常用语法

Scala数组遍历, 语法结构: for (i <- 区间) val common = Array(1,2,3,4) // 遍历数组 for (i <- 0 until common.length)   println(i + " : " + common(i)) println("=======================") // 每两个元素一跳 for (i <- 0 until(common.length,2))   println(i

Scala系统学习(三):Scala基础语法

如果您熟悉Java语言语法和编程,那么学习Scala将会很容易.Scala和Java之间最大的句法差异在于行结束字符的分号(;) 是可选的. 当编写Scala程序时,它可以被定义为通过调用彼此的方法进行通信的对象的集合.现在我们简单地看一下类,对象,方法和实例变量的含义. 对象 - 对象有状态和行为.一个对象是类的一个实例.例如 - 狗有状态:颜色,名称,品种,它行为有:摇摆,吠叫和吃东西. 类 - 可以将类定义为描述与该类相关的行为/状态的模板/蓝图. 方法 - 一个方法基本上是一种行为.一个

Scala基础语法介绍

1.变量的定义 注意:在scala中没有static的概念,在object这个关键字修饰的类中所有的方法和属性都是static的.这里的object类叫做伴生类,目前不涉及. 例: object Test01{ def main(args: Array[String]): Unit = { //使用val定义的变量是不可变的,相当于java中的final修饰的 val v1=1 //使用var定义的变量的值是可变的,在scala中鼓励使用的是val var v2=2 //在定义变量的时候,也可以

scala函数式编程(二) scala基础语法介绍

上次我们介绍了函数式编程的好处,并使用scala写了一个小小的例子帮助大家理解,从这里开始我将真正开始介绍scala编程的一些内容. 这里会先重点介绍scala的一些语法.当然,这里是假设你有一些java或者python的基础,毕竟大部分人不会将scala当作第一门学习编程的语言. 不过这些语法知识记不住也没关系,本身语法这种东西就应该在使用中被记住.这里写这篇的目的也只是梳理一遍,方便大家对语法有个初步的印象,后面可以随时查询. PS:所使用的版本是scala 2.11.8,那我们开始吧 一.