Scala
scala 是一种多范式编程语言 集成面向对象编程和函数式编程的各种特效
运行于java平台(虚拟机) 兼容现有的java程序
速度快 能融合到Hadoop生态圈
scala 安装
编写第一个scala程序
object Test{
def main(args: Array[String]): Unit = {
println(“hello scala, i love you very much”)
}
}
编译运行
scalac HelloWorld.scala
scala Test
IDEA和Scala插件安装
变量定义和使用
object VarableTest {
def main(args: Array[String]): Unit = {
//定义可变的变量
val i = 10
var j: Int = 11
//定义不可变的值 相当于java中使用 final修饰的变量
val m = "hello"
val n: Double = 10.0
//定义变量时不指定初始值
//var x: Int =
//Byte Short Char Int Long Float Double
var jj: Int = 100
val ii: String = "Ni好啊"
var aa:Int = 100
var bb:Byte = 1
var cc:Short = 10
var dd:Char = 'a'
var ee:Int = 100
var ff:Long = 1000
var gg:Float = 10000
var hh:Double = 100.0
}
}
scala的条件表达式
object IfDemo {
def main(args: Array[String]): Unit = {
var i = 10
//判断表达式 简写方式
var j = if (i >20) 20 else 10
//完整的方式
val k = if(i>0) {
10
111
} else {
0
}
println(k)
//混合类型
val z:Any = if (i>1) 1 else "error"
//
val n = if (i<=10) 1 else ()
val x = 0
val y = if (x > 0) 1 else "error"
println(y)
//在scala中每个表达式都有值.scala中有个Unit类 ,写作(),相当于Java中的void
val mm = if (x > 2) 1
println(mm)
val nn = if(x>2) 1 else ()
val result ={
if(x<0){
100
-1
}else if (x >=1){
1
}else{
"error"
}
}
//result 的值就是块表达式的结果
println(result)
}
}
for循环的使用he yield关键字
object ForDemo {
def main(args: Array[String]): Unit = {
/*val str = "abcdefg"
//局部变量 <- 循环的数组或者集合
for (c <- str){
println(c)
}*/
val arr = Array(11,12, 13, 14, 15)
//for (e <- arr) println(e)
/**
*1 to 5
* 1 until 5
*/
/*for (i <- 0 to arr.length -1){
//println(arr(i))
}
for (i<- 0 until(arr.length)){
println(arr(i))
}
for(i <- arr.indices){
println(arr(i))
}
for(i <-1 to 3 ;j <- 1 to 3 if i !=j)
print(10*i +j)*/
val a2 = for(e <- arr) yield e * 10
/*for (e <- a2){
println(e)
}*/
val a3 = Array(1,2,3,4,5,6,7,8,9)
val a4 = for (i <- a3 if i % 2 ==0) yield i * 10
for (i <- a4){
println(i)
}
}
}
运算重载成方法
Scala定义方法
def方法名(参数列表) :返回值类型 = 方法体
/**
* 方法
*/
object MethodDemo {
def main(args: Array[String]<