一、数据类型分类
Any:
所有类型的超类(顶级类型)
包含:AnyVal:值类型的超类 AnyRef引用类型的超类
AnyVal:
表示值类型的超类
包含Double,Float,Int,Short,Long,Char,Byte,Unit,Boolean —Nothing
AnyRef:
表示引用类型的超类,对应java.lang.Object
包含 List,Option,YourClass ----Null —Nothing
Unit:表示无值,类似Java中的void
Nothing:所有类型的子类
Null:表示null或空引用
二、字符串插值
/*
字符串插值
- */
```java
val name = "yes"
var gender = "nv"
println(s"your name is $name, and your gender is $gender")
println("------------------------")
val height = 1.65
println(f"your name is $name%s, and your gender is $gender,and your height is $height%10.2f")
println(s"your name is $name, \nand your gender is $gender")
println("------------------------")
三、条件控制语句
/*
条件控制语句
- */
val x = 10
var result = if (x < 0) 1 else 2
println(result)
var result2 = {
//多个表达式使用“;”分隔,返回值为最后一个表达式
x + 1;
println("我是代码块")
}
println(result2)
println("------------------------")
四、循环控制
/*
循环控制
- */
var num2: Int = 0
while ( num2 < 100 ) {
println( num2 )
num2 = num2 + 1
}
//“i to j"或者"i until j"均表示创建一个区间Range
//to 表示 [ ], until[ )
println("------------------------")
for { i: Int <- 1 until 100 }
{
val y = 2*i;
println( y );
}
五、for 循环过滤
/*
for 循环过滤
* */
val num: Int = 10
for(i:Int<- 1 to num ; if i%2==0; if i>5){
println(i)
}
var result3 = for (i: Int <- 1 to num; if i % 2 == 0; if i > 5) yield i;
//结果可直接以字符串的形式取出来
for (a <- result3) {
println(a)
}
六、中断
/*
中断
* */
import scala.util.control.Breaks._
breakable(for(i:Int<- 1 to num by 2){
if(i>5) break else println(i)
})
println("------------------------")
七、 scala数组创建
/*
scala数组创建
* */
val a1: Array[String] = new Array[String](3)
var a2 = Array("yyy", "rrr", "eww")
//遍历数组方法1
for(i<- 0 until a2.length)
println(a2(i))
//遍历数组方法2
val iter = a2.iterator
while (iter.hasNext){
println(iter.next())
}
八、 scala创建元组
/*
scala创建元组
* */
//声明元组方法一:
var a3 = ("yyy", "rrr", "eww")
//声明元组方法二:
val tuple = new Tuple3("ttt","yyy","rrr")
//打印元组数据方法一:
tuple.productIterator.foreach(i=> println("value:"+i))
//打印元组数据方法二:
println(tuple._1)
//元组声明方式三
def mike = "Mike" -> 5
//输出scala.Tuple2
mike.getClass
//将元组元素依次赋给三个变量
}
}