Scala 基本使用
一、Scala 概述
- Scala是一门多范式(multi-paradigm)的编程语言,Scala支持面向对象和函数式编程
- Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有的Java类库,实现两种语言的无缝对接.
- scala单作为一门语言来看,非常的简洁高效(三元运算,++,--)
二、Scala 基本语法
1、hello word
package org.wdh01.bigdata.scalakx.chapter01 object Base01_0323 { def main(args: Array[String]): Unit = { println("Hello world") } }
运行结果
Hello world
底层会生成2个class文件。
2、基本语法概述
- main 方法是程序执行的入口
- 区分大小写
- 单行注释、多行注释和文档注释和Java一样
- 类名首字母大写,方法名首字母小写
- 允许嵌套 Java 代码块
- 如果一行只有一句话,;可以省略
3、Scala 中的数据类型
4、变量
- var 修饰的变量可变,val 修饰的变量不可变,
- 变量类型确定后不可变
- 声明变量时,变量类型可以省略,(编译器可以自行推到)
- 变量的类型确认后不可以进行修改了
var i = 10; val m: Int = 2 m = 3
对于val 修饰的变量进行再次赋值会出现以上错误。
可变变量赋值
var a: Int = 1 //定义一个可变的变量 a 赋值 1 var b: Int = 2; //定义一个可变的变量 b 赋值 2 b = 3 // 给变量 b 重新赋值 println(a) println(b)
运行结果
1 3
变量的基本使用
var age = 26 val sal: Double = 10.3 var name: String = "令狐冲" var isPass = true var score: Float = 56.1f 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的面向对象编程和函数式编程更加完美的进行了融合
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、字符串
var c1: Char = 97 println(c1) //结果是 a ,即 97 对应的 unicode 值 //Char 可以当作数值进行运算 var c2 = c1 + 10 println(s"$c1 $c2")
7、Boolean
布尔值只取 false 和 true l两个值,一般用于循环&条件判断等
8、字符串
scala 里的 string 和 Jav啊里的 string一样,但是 Scala 的 string 的字符串可以直接调用自身方法,
var str = """流星 |蝴蝶 |剑""".stripMargin println(str)
运行结果
流星
蝴蝶
剑