变量
val t = 1
val tt: Int = 11
var s = "hello scala"
var str: String = "hello world!"
val相当于java的final
类型
- 7种数值类型:Byte, Char, Short, Int, Long, Float, Double
- 1种布尔类型:Boolean
- Any相当于java中的Object
- Unit写做(),相当于java中的void
循环
- 循环Range
scala> 1 to 10
res0: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
for(i <- 1 to 10)
println(i)
- 循环数组
val arr = Array(1,2,3,4,5)
for(t <- arr)
println(t)
- 带条件循环
for(i<- 1 to 3; j<- 1 to 3 if i!=j)
println(10 * i + j)
- yield关键字
scala> val seq = for(i<- 1 to 10 if(i%2==0)) yield i*10
seq: scala.collection.immutable.IndexedSeq[Int] = Vector(20, 40, 60, 80, 100)
- filter函数
scala> val arr = Array(1,2,3,4,5)
arr: Array[Int] = Array(1, 2, 3, 4, 5)
scala> arr.filter(_%2==0).map(_*10)
res0: Array[Int] = Array(20, 40)
- until关键字
scala> val arr = Array(1,2,3,4,5)
scala> for(i<- 0 until arr.length) println(arr(i))
方法
def methodName(paramOne: Int, paramTwo: String): String={
...
}
函数
- 函数定义
val funName = (paramOne: Int, paramTwo: String) => {
...
}
val funName : Int => String = {
x => x.toString
}
val funName: (Int, Double) => (Double, Int) = {
(a, b) => (b, a)
}
- 函数可以作为方法的参数
val fun1 = (x: Int) => x * 10
def m1(x: Int, f: Int => Int) = {
f(x)
}
def main(args: Array[String]) {
val res = m1(2, fun1)
println(res)
}