Scala 基本使用
一、Scala 概述
- Scala是一门多范式(multi-paradigm)的编程语言,Scala支持面向对象和函数式编程
- Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有的Java类库,实现两种语言的无缝对接.
- scala单作为一门语言来看,非常的简洁高效(三元运算,++,--)
二、Scala 基本语法
1、hello word
1 2 3 4 5 6 7 | package org.wdh 01 .bigdata.scalakx.chapter 01 object Base 01 _ 0323 { def main(args : Array[String]) : Unit = { println( "Hello world" ) } } |
运行结果
1 | Hello world |
底层会生成2个class文件。
2、基本语法概述
- main 方法是程序执行的入口
- 区分大小写
- 单行注释、多行注释和文档注释和Java一样
- 类名首字母大写,方法名首字母小写
- 允许嵌套 Java 代码块
- 如果一行只有一句话,;可以省略
3、Scala 中的数据类型
4、变量
- var 修饰的变量可变,val 修饰的变量不可变,
- 变量类型确定后不可变
- 声明变量时,变量类型可以省略,(编译器可以自行推到)
- 变量的类型确认后不可以进行修改了
1 2 3 | var i = 10 ; val m : Int = 2 m = 3 |
对于val 修饰的变量进行再次赋值会出现以上错误。
可变变量赋值
1 2 3 4 5 | var a : Int = 1 //定义一个可变的变量 a 赋值 1 var b : Int = 2 ; //定义一个可变的变量 b 赋值 2 b = 3 // 给变量 b 重新赋值 println(a) println(b) |
运行结果
1 3
变量的基本使用
1 2 3 4 5 6 | var age = 26 val sal : Double = 10.3 var name : String = "令狐冲" var isPass = true var score : Float = 56.1 f println(s "$age - $name - $sal" ) |
运行结果
26 - 令狐冲 - 10.3
说明:scala 中的println可以通过 println(s"$age - $name - $sal") 方式调用已定义的变量。
scala 中的+号作用
1、当+两端的数据是数值类型的时候作用是 数值相加。如:1=2 结果 是 3
2、当+两端有一个是字符类型的时候,作用是 拼接字符串如 1 + ”二“ 结果 ”1二“
5、数据类型
说明
- Scala 中的数据类型都是对象,都可以调用自带的方法
- Scala 数据类型分两大类:AnyVal-值类型,AnyRef-引用类型,两者都是对象
- Scala 的数据类型相比Java更加复杂,因此也让Scala的面向对象编程和函数式编程更加完美的进行了融合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | object DataType _ 0322 { def main(args : Array[String]) : Unit = { var num : Int = 10 //num 是一个I那天类型的值,也是一个Int 的一个实例,因此可以调用 //Scala 中 ,方法没有形参,() 可以省略 println(num.toDouble + "\t" + num.toString + "\t" + 100 .toDouble) var isPass = true println(isPass.toString) sayHelo sayHelo() } def sayHelo() : Unit = { println( "hello..." ) } } |
运行结果
10.0 10 100.0 true hello... hello...
这里有一个Scala 的谱系图
6、字符串
1 2 3 4 5 | var c 1 : Char = 97 println(c 1 ) //结果是 a ,即 97 对应的 unicode 值 //Char 可以当作数值进行运算 var c 2 = c 1 + 10 println(s "$c1 $c2" ) |
7、Boolean
布尔值只取 false 和 true l两个值,一般用于循环&条件判断等
8、字符串
scala 里的 string 和 Jav啊里的 string一样,但是 Scala 的 string 的字符串可以直接调用自身方法,
1 2 3 4 5 | var str = "" "流星 |蝴蝶 |剑" "" .stripMargin println(str) |
运行结果
流星
蝴蝶
剑
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!