Scala的基本语法

  • Post author:
  • Post category:其他


数据类型

在这里插入图片描述

和Java不同的是,

在Scala中,这些类型都是“类”,

并且都是包scala的成员,

比如,Int的全名是scala.Int。

对于字符串,Scala用java.lang.String类来表示字符串

特殊类型

Unit:表示无值,和java中的void等同,Unit只有一个实例值,写成()。

Null:空值或引用

Nothing:所有其它类型的子类型,表示没有值

例如:

val list1 = List()在不确定值类型时自动定义为Nothong

Any:所有其它类型的超类,任何实例都属于Any类型

AnyRef:所有引用类型的超类

AnyVal:所有值类型的超类

在这里插入图片描述

类型间的转换

强制类型转换:

toDouble

toFloat

toLong

toInt

toShort

toChar

在这里插入图片描述

字面量

字面量是直接在代码里书写常量值的一种方式

整型字面量定义:

整型字面量用于 Int 类型,如果表示 Long,可以在数字后面添加 L 或者小写 l 作为后缀。

在这里插入图片描述

浮点型字面量:

如果浮点数后面有f或者F后缀时,表示这是一个Float类型,否则就是一个Double类型的

在这里插入图片描述

布尔型字面量:

布尔型字面量有 true 和 false

在这里插入图片描述

字符字面量:

在scala中字符类型表示为半角单引号中的字符

在这里插入图片描述

字符串字面量

字符串表示方法是在双引号中 包含一系列字符

多行字符串的表示方法

多行字符串用三个双引号来表示分隔符
在这里插入图片描述

变量定义方法

方法一:

val 变量名 = 初始值

var 变量名 = 初始值

#通过类型推断机制自动推断变量类型

方法二:

val 变量名:数据类型 = 初始值

var 变量名:数据类型 = 初始值

变量和常量

1.scala中定义变量使用 var ,定义常量(或值不可再赋值的变量)使用 val;

2.scala每行后面都有 ; 自动推断机制,不用显式写出;

3.scala中变量和常量的类型可以省略,有自动类型推断机制;

4.scala中建议使用驼峰命名法

流程控制语句

  1. 判断结构:

    if (表达式) {


    语句块1

    } else {


    语句块2

    }

    有一点与Java不同的是,Scala中的if表达式的值可以赋值给变量
  2. while循环

    while (表达式){


    循环体

    }

    do{


    循环体

    }while (表达式)
  3. for循环

    for (变量 <- 表达式) {语句块}

    其中,“变量<-表达式”被称为“生成器”

    在这里插入图片描述

    for“守卫(guard)”的表达式:过滤出一些满足条件的结果。

    基本语法:

    for (变量 <- 表达式 if 条件表达式) 语句块

对循环的控制

为了提前终止整个循环或者跳到下一个循环,Scala没有break和continue关键字

Scala提供了一个Breaks类(位于包scala.util.control)。

Breaks类有两个方法用于对循环结构进行控制,即breakable和break

格式:

breakable{




if(…) break



}

列子:

import util.control.Breaks._ //导入Breaks类的所有方法

val array = Array(1,3,10,5,4)

breakable{


for(i<- array){


if(i>5) break //跳出breakable,终止for循环,相当于Java中的break

println(i)

}

}

// 上面的for语句将输出1,3

for(i<- array){


breakable{


if(i>5) break

//跳出breakable,终止当次循环,相当于Java的continue println(i)

}

}// 上面的for语句将输出1,3,5,4

模式匹配——Match

模式匹配:

1、检查某个值(value)是否匹配某一个模式的机制;

2、是Java中的switch语句的升级版,同样可以用于替代一系列的 if/else 语句;

3、使用match-case语句实现值的条件判断;

4、较java只能对值判断来看,match-case可以实现变量类型、集合的元素、有值或无值的判断

基本结构:

变量名 match{


case 变量值 => 表达式或值

case 变量值 => 表达式或值

……

case _ => 表达式或值

}



版权声明:本文为ghf183184原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。