1.定义变量
var/val 变量名 = 变量值
eg: var name = “zhangsan”
如果不指定变量类型,则系统会自动识别,如果需要指定类型,写法如下:
var age :Int = 18
var和val的区别是:var定义的变量是可以修改的,然而val定义的变量是不能修改的
2.定义数组
val a = Array(1,2,3,4,5) 或者 val a = Array[Int](1,2,3,4,5)
3.for循环
val arr = Array(1,2,3,4,5)
for(i <- arr) println(i)
for(i <- 0 to 4) println(arr(i))
for(i <- 0 until 5) println(arr(i))
增加守卫:
for(i <- arr if i % 2 ==0) println(arr(i))
for循环嵌套
for(i <- 1 to 3; j <- 1 to 3 if i != j)println(10*i+j)
yield 关键字 (返回的是一个数组)
for(i <- arr if i % 2 ==0) yield i
结果如下:
4.scala中没有运算符,有的是运算符重载方法
5.函数的定义:
方式一:(函数参数列表) => 函数体
val add = (x: Int , y: Int) => x + y
方式二:
(函数的参数类型列表)=>函数的返回值类型 = (函数的参数变量引用) => 函数体
(Int,Int) => Int = (x,y) => x + y
6.高阶函数
将其他函数作为参数或其结果是函数的函数
7.数组定义
数组内容都可变
但分度分为长度可变(ArrayBuff)和长度不可变(Array)
(1)val arr = new Array(数组长度)
val定义的数组,内容可变,但是长度不可变
(2)val arr = Array (具体的值)
8.在scala中,集合分为可变集合(长度可变内容可变在mutable包中)和不可变集合(长度不可变,内容不可变在immutable包中)
9.在scala中的object是一个单例对象,没办法new
object中定义的成员变量 和方法都是静态的,因此可以通过对象名 . 成员变量/方法来调用