您的位置:首页 > 其它

Scala学习(一)

2016-07-19 00:17 471 查看

1、HelloWorld

object HelloWorld{
def main(args:Array[String]):Unit={
println("hello,world")
}
}

编译并执行

scalac HelloWorld.scala
scala HelloWorld.scala

2、scala语法

scala末尾的分号是可选的,区分大小写,类名的第一个字母要大写,方法名第一个字母要小写

交互式编程

1 + 1
println("hello,world")

3、函数

def 方法名(参数名:类型):返回类型 = {

}

4、循环

4.1 输出[1 - n]

for(i <-  1 to n)

4.2 输出[1,n)

for(i <- 1 util n)

4.3 遍历数组

var a = Array("hello","world","fonxian")
for(i <- a){
println(i)
}

5、数组

5.1 新建数组

var a = new Array[Int](10)
var b = Array("hello","world","fonxian")

5.2 访问数组元素

a(1)

5.3 可变长度数组(等价于Java中ArrayList)

新建

var a = new ArrayBuffer[Int]()

添加元素

a += 1
a += (1,2,3,4)
a ++= ArrayBuffer(7,8,9)

数组操作

a.size
a.remove(2) //去掉索引值为2的元素
a.remove(2,3) //去掉以索引值为2的元素开始的3个元素
a.trimEnd(n)  // 去掉尾部的n个元素
a.trimStart(n) //去掉头部的n个元素
a.insert(2,3) //索引值为2的位置插入一个元素

数组的一些循环操作

var result = for(elem <- a) yield 2*elem

等价于

for(elem <- a){
elem = elem *2
}

var result = for(elem <- a if elem % 2 == 0) yield 8 * elem

等价于

for(elem <- a){
if(elem % 2 == 0){
elem = elem * 8
}
}

6、映射

6.1 不可变映射,键对应的值不可以被改变

val scores = Map("feng" -> 100,"yun" -> 18)
val fengScore = scores("feng")

6.2 可变映射,键对应的值可以被改变

val myScores = scala.collection.mutable.Map("feng"->100,"yun"->18)
myScores("feng") = 1000

6.3 创建空的映射

val myScores1 = scala.collection.mutable.HashMap[String,Int]

6.4 添加元素

//添加元素
myScores1 += ((k,v))
myScores1 += (("aaa",1),("bbb",2))

6.5 获取映射元素的一种方法

//获取映射元素的一种方法
val omg = if(myScores1.contains("aaa")) myScores1("aaa") else 0

6.6 获取映射元素的另一种方法

//获取映射元素的另一种方法
val omg = myScores1.getOrElse("aaa",0)

6.7 删除一个映射元素

//删除一个映射元素
myScores1 -= "aaa"

6.8 遍历映射元素的key

//遍历映射元素的key
myScores1.keySet

6.9 遍历映射元素的value

//遍历映射元素的value
for(v <- myScores1.values){
println(v)
}

6.10 map+reduce

在经过map操作时,得到的是一个集合Vector(2,3,4,5),执行reduece操作时,得到5

val my = Vector(1,2,3,4)
my.map(n => n+1).reduce((a,b) => if(a>b) a else b)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: