scala入门

本文介绍Scala编程语言的基础知识,包括变量声明、数据类型、集合操作及数组处理等内容,并提供了丰富的示例帮助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。

Scala 运行在Java虚拟机上,并兼容现有的Java程序。

Scala 源代码被编译成Java字节码,所以它可以运行于JVM之上,并可以调用现有的Java类库。

OK,干货,开始。

学习这门语言之前最好有其他的开发语言基础,否则会闷逼的

1 .变量声明

scala和JavaScript一样是弱语言类型

变量类型:val、var

  • val :常量 (推荐)
    类似java中的final修饰符,具有不可变性
  • var :变量 可改变值

2 .数据类型 (前7种是值类型)

数据类型描述
Byte8位有符号补码整数。数值区间为 -128 到 127
Short16位有符号补码整数。数值区间为 -32768 到 32767
Int32位有符号补码整数。数值区间为 -2147483648 到 2147483647
Long64位有符号补码整数。数值区间为 -9223372036854775808 到 9223372036854775807
Float32位IEEE754单精度浮点数
Double64位IEEE754单精度浮点数
Char16位无符号Unicode字符, 区间值为 U+0000 到 U+FFFF
String字符序列
Booleantrue或false
Unit表示无值,和其他语言中void等同。用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成()。
Nullnull 或空引用
NothingNothing类型在Scala的类层级的最低端;它是任何其他类型的子类型。
AnyAny是所有其他类的超类
AnyRefAnyRef类是Scala里所有引用类(reference class)的基类

3 .集合三大类

  • seq(序列)
  • set(集)
  • map(映射)
1.声明一个List集合,scala会自动判断list集合里值得类型
val list1 = List(1,2,3,4) 
结果 list1: List[Int] = List(1, 2, 3, 4)

2.在list1集合“前面”插入一个数
val list2 = 0 :: list1
结果 list2: List[Int] = List(0, 1, 2, 3, 4)
也可以写成
val list3 = list1.::(0)
结果 list3: List[Int] = List(0, 1, 2, 3, 4)
亦或者
val list4 = 0 +: list1
结果 list4: List[Int] = List(0, 1, 2, 3, 4)
val list5 = list1.+:(0) 
结果 list5: List[Int] = List(0, 1, 2, 3, 4)

3.在list1集合“后面”插入一个数 (注意:和+的位置)
val list6 = list1 :+ 5 
结果 list6: List[Int] = List(1, 2, 3, 4, 5)
同理
val list7 = list1.:+(5)
结果 list7: List[Int] = List(1, 2, 3, 4, 5)

4.++
val list8 = List(5,6,7,8)
val list9 = list1 ++ list8
结果 list9: List[Int] = List(1, 2, 3, 4, 5, 6, 7, 8)

所以说 :: 是一个方法?Excuse me?

实现方式有很多种,觉得哪个好记就用哪个吧,也不知道这位开发者是多无聊啊

4 .数组

导入需要的包
import scala.collection.mutable.ArrayBuffer

定长数组
// 提一下:如果创建对象的时候,省略new关键字,需要定义对应的apply方法

val a = Array[Int](10)
输出:a: Array[Int] = Array(10)
val b = new Array[String](5)
输出:b: Array[String] = Array(null, null, null, null, null)
val c = Array("Mary","Tom","Mike")
输出:c: Array[String] = Array(Mary, Tom, Mike)
val d = Array(1,2,3,4,5)
输出:d: Array[Int] = Array(1, 2, 3, 4, 5)

可能你已经注意到了,在声明变量和赋值语句后,并没有使用分号,在Scala中,仅当同一行代码存在多条语句的时候,才需要用分号隔开。

3 .for循环

4 .while循环

5 .do while 循环

6 .foreach进行迭代

7 .异常

8 .关键字yield

类中的apply方法:
这个方法在scala中比较特殊,类中定义了apply的方法后,调用这个方法不需要显示的写apply。直接写”实例名(参数列表)”的形式就好。
例如:
tuple(1)事实上是调用了tuple.apply(1)
List(1,2,3,4)事实上是调用了List(1,2,3,4)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值