[原创]Scala学习:Tuple,Array,Map ,文件操作

时间:2023-03-09 18:54:12
[原创]Scala学习:Tuple,Array,Map ,文件操作

1.Tuple:元祖。是一个有用的容器对象。

  1)特点:

    ① 元祖是不可变的,即,当声明完了一个元祖,那么它的长度就不可以在改变;

    ② 元祖可以包含不同类型的数据,对象;

    ③ 索引是从 '_1' 开始,读取元祖中的内容

    ④标识:' () '

  2)代码

   //元祖
def doTuple() {
//'()' 定义元祖
val pair = (100, "scala", "spark") //元祖的类型val pair: (Int, String, String) 由scala类型推倒
println(pair._1)
println(pair._2)
}

   

2.Array:类型参数化数组

  1)特点: 

      ①参数化的意思是指创建实例的同时完成对它的“设置”,即赋值;

    ②scala数组通过索引值加圆括号进行访问,array(i);有别于java中的方括号;

   ③Array长度不可变,但是它的值可变;

  2)代码:

   //数组
def doArray() {
//通过Array 关键字定义数组
val array = Array(1, 2, 3, 4, 5)
// for(i <- 0 until array.length){
// println(array(i))
// } // 增强for循环,推荐
for (elemt <- array) println(elemt) }

3.Map

  //map操作
def doMap() {
//通过Map关键字 定义一个Map
val ages = Map("jason" -> 27, "hadoop" -> 20) for ((k, v) <- ages) println("key is :" + k + ", hadoop is :" + v) //key is :jason, hadoop is :27 key is :hadoop, hadoop is :20 // "_ " 是一个占位符
// for((k,_) <- ages) println("key is :"+ k )//key is :jason key is :hadoop }

函数式编程:方法没有副作用是函数式风格 编程的重要思想,计算并返回值应该是方法的唯一目的。

  1.方法之间的耦合度降低,更加可靠和易于重用

  2.(在静态类型语言里)方法的参数和返回值都要经过检查器的检查,因此,可以比较容易的根据类型错误推断其中隐含的逻辑错误

4.文件的操作:source类中的静态方法

  def doFile() {

     // 通过scala.io.Source 对象
val file = Source.fromFile("E:\\java_workspase\\scalaProgramWorkSpace\\test.txt")
for (line <- file.getLines()) println(line) }