Scala-数组,列表,元组和文件读写 - webdancer's Blog
Scala-数组,列表,元组和文件读写
已经对Scala的变量,函数了解以后,看一下比较高级的数据结构以及IO。
1.数组:
1 2 3 | val language = new Array[String]( 2 ) language( 0 ) = "Java" language( 1 ) = "Scala" |
在scala中提供一种更加简洁的方式,
1 | val language = Array( "java" , "Scala" ) |
可以看到,与Java明显不同的是:Scala中数组使用()来索引,而不是使用[]。得到数组里面的每个元素,可以使用:
1 2 | for (i <- 0 to 2 ) println(language(i)) |
需要注意的是:0 to 2 相当于0.to(2),这个和1+3是一样的道理,所有的操作符都是函数调用的方式进行的。这也是Scala中索引使用(),而不使用[]的原因。language(1)相当于language.apply(1)。
2.Scala的数组长度不可变,但是数组还是可以变化的,比如:
1 | langage( 0 ) = "C" |
如果想让数组中元素也不可变,可以使用List。
1 2 3 4 | val l 1 = List( 1 , 2 ) val l 2 = List( 3 , 4 ) val l 3 = l 1 ::: l 2 val l 4 = 2 :: l 2 |
List是不可变的,符合函数式编程的性质,它有很多操作。
- 构造:List()
- 连接:l1 ::: l2
- 数数:l1.count(e => e>0)
- Map:l1.map(e => e* 2)
- filter: l1.filter(e => e>1)
- foreach: l1.foreach(println)
- 长度:l1.length
- reverse:l1.reverse()
- 排序:l1.sortWith((a,b) => a<b)
- head,last,init,tail
3.Tuple:与List基本一样,但是可以放不同类型的元素;最多可以放22个;索引从1开始,使用._进行索引,比如:t._1
4.set,Map
5.读写文件:
1 2 3 4 | import scala.io.Source for (line <- Source.fromFile(filename).readlines()) println(line) |
2022年8月23日 20:04
Nagaland Board Model Paper 2023 Class 3 Pdf Download with Answers for Bengali Medium, English Medium, Hindi Medium, Urdu Medium & Students for Small Answers, Long Answer, Very Long Answer Questions, and Essay Type Questions to Term1 & Term2 Exams at official website. Nagaland Board 3rd Class Model Paper New Exam Scheme or Question Pattern for Sammittive Assignment Exams (SA1 & SA2): Very Long Answer (VLA), Long Answer (LA), Small Answer (SA), Very Small Answer (VSA), Single Answer, Multiple Choice and etc.