03scala基础语法和数据类型

82 阅读3分钟

一.scala 标识符

注意

1.标识符不能以数字开头;

2.if不能作为变量名。 if是关键字;

3.只能是数字,字母下划线。

二.关键字

屏幕截图 2025-09-10 084009.png

1.def: 定义方法

2.implicit: 隐式转换

3.lazy: 懒加载

4.match: 模式匹配,类似switch

三.Scala代码中的注释

在代码中添加注释可以解释说明程序,提高程序的可读性。和Java一样,在Scala中,主要有三种注释的方式:

  1. 单行注释。 // 注释的内容

  2. 多行注释。 /* 注释的内容 */

  3. 文档注释。/** 注释的内容*/

四.scala分号

1.如果一行只有一条语句或一个表达式时,则分号可以加,也可以不加;

2.如果一行有多条语句或多个表达式时,则分号必须填写。

屏幕截图 2025-09-10 090203.png

Scala在自动推断分号时一般以换行代表一条语句或一个表达式的结束,但是在遇到以下任何一种情况时都会推断出表达式尚未结束,从而把当前表达式延续到下一行:

1.如果当前行以一个不能结尾的词结尾,如英文句号或中辍操作符;

2.如果当前行结尾出现在()或[]内。

五.Scala的变量

变量有两个 var 和 val

定义:var用来定义可变变量 ,val用来定义不可变变量

定义一个变量

var | val 变量名:数据类型 = 值

屏幕截图 2025-09-10 090850.png

定义多个变量

var|val 变量名1, 变量名2, ... = 值

此时,所有的变量都有同样的数据类型和同样的值

六.Scala的数据类型概述

Scala支持的数据类型

1.   Byte:  8位有符号整数。数值区间为-128~127

2.   Short:16位有符号整数。数值区间为-32768~32767

3.   Int:   32位有符号整数。数值区间为-2147483648~2147483647

4.   Long:  64位有符号整数。数值区间为-9223372036854775808~ 9223372036854775807

5.   Float:32位IEEE 754标准的单精度浮点数

6.   Double:64位IEEE 754标准的双精度浮点数

7.   Char:16位无符号Unicode字符, 区间值为U+0000~U+FFFF

8.   String:字符序列

9.   Boolean:true或false

  1. Unit:表示无值,和其他语言中的void等同。用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成()

  2. Null:null或空引用

  3. Nothing:Nothing类型在Scala的类层级的最底端,它是任何其他类型的子类型

  4. Any:Any是所有其他类的超类

  5. AnyRef:AnyRef类是Scala里所有引用类(reference class)的基类

类型层次图: image.png

七 Scala中的数值数据类型

屏幕截图 2025-09-10 092103.png

object base03 {
  def main(args: Array[String]): Unit = {
    // 声明变量
    var a:Byte = 1
    a = 126

    var b = 1 // 默认是 Int

    var c = 1.1 // 默认是 Double

    //char 单引号
    var ch1:Char = 'A'

    var ch2 = 'a'

    var ch3:char = 97

    println(ch1,ch2,ch3)
  }
}

八.Scala的字符串类型

屏幕截图 2025-09-10 092814.png

object base04 {
  def main(args: Array[String]): Unit = {
    //println (" 床前明月光,
    // 疑是地上霜 ")

    // 多引号,可以支持换行
//    println ("""
//              床前明月光,
//              疑是地上霜。
//     """)

//    var name = "小花"
//    var age = 19
//    println(s"我的名字是:$name,$age 岁")
   
  }

}

获取输出

image.png

九.类型转换

在赋值和运算时,范围小的数据类型会自动转换为范围大的数据类型,再计算。

1 + 1.1 的结果就是Double类型的2.1。

范围类型从小到大排列如下: byte,short,char → Int -> Long → Float → Double

    var a:Double = 1
//    (市长,省长) === 谁的官大? 省长!

//    var b = 2 + a

    // 强制类型转换, 变量.to 类型 ()
//    var c:Int = 1.1
    var c:Int = (1.123).toInt

    var ch:Char = 65.toChar
    println(ch)

输出结果

屏幕截图 2025-09-10 094021.png