Dream------scala--Tuple、Array、Map与文件操作
1、Tuple(元组)
一般使用中,假设一个函数返回多个值,我们可以使用tuple接受这个(val (x,y) = myfunction)
package com.wls.scala.hello /** * Created by wls on 2015年8月12日21:31:56. */ object TupleOps { def main(args : Array[String]): Unit ={ //可以放任意多个元素-------------scala一个强大能力,类型推到,可以根据值来判断变量的类型(比如:100他会识别为int,Spark他会识别为String) val triple = (100,"Spark","Scala") //索引从1开始,不是从0开始 println(triple._1) println(triple._2) println(triple._3) //输出:100 // Spark // Scala } }
2、Array
object ArrayOperations { //数组的声明 val array = Array(1,2,3,4,5) //数组的遍历(注意until和to的区别,to是闭区间,until是左闭右开) for(i <- 0 until array.length){ println(array(i)) } //一般这个用的比较多 for(elem <- array){ println(elem) } }
3、Map
object MapOperations { def main(args : Array[String]): Unit ={ //声明一个空的map var myMap :Map[Int,String] = Map() //给map赋值 myMap += (1 -> "wlssss") //声明一个初始化的map val ages = Map("Rocky" -> 27 ,"wls" -> 26) //遍历map----(key,value)就可以看成是一个Tuple for((key,value) <- ages){ println("Key is "+key +",value is "+ value) }
//"_"是占位符,这种写法只能引用k,取不到value的 for((k,_) <- ages ){ println("Key is " + k) } } }
4、文件
//需要引入这个包 import scala.io.Source /** * Created by Administrator on 2015/8/12. */ object FileOps { def main(args : Array[String]): Unit ={ //读取本地文件 val file = Source.fromFile("E:/data/apache.org/index.html") val fileURL = Source.fromURL("http://www.cnblogs.com/wangliansong/") //按行读取文件,并输出,实际上就是输入文件内容,并且按原来的行格式 for(line <- file.getLines()){ println(line) } //会打印出这个网页的内容 for(lineURL <- fileURL.getLines()){ println(lineURL) } } }
相关来源:
DT大数据梦工厂,微信公众号是:DT_Spark,每天都会有大数据实战视频发布,请您持续学习。
相关资料:
scala深入浅出实战经典完整视频、PPT、代码下载:
百度云盘:http://pan.baidu.com/s/1c0noOt6
腾讯微云:http://url.cn/TnGbdC
360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码45e2