Scala复杂句的摘记

本节内容就是摘抄Scala里面的复杂句,里面的内容是一一对应的

2.基本数据类型和操作

5.toString() //产生字符串"5"
"abc".intersect("bcd")  //输出"bc"。intersect()方法用来输出两个字符串中都存在的字符。

3.range

scala> 1 to 5
scala> 1 until 5
scala> 1 to 10 by 2

5.读写文件

把数据写入文本文件

import java.io.PrintWriter //这行是Scala解释器执行上面语句后返回的结果
val out = new PrintWriter("output.txt")
for (i <- 1 to 5) out.println(i)
out.close()  //注意:必须要执行out.close()语句,才会看到output.txt文件被生成

读取文本文件中的行

import scala.io.Source //这行是Scala解释器执行上面语句后返回的结果
val inputFile = Source.fromFile("output.txt")
val lines = inputFile.getLines //返回的结果是一个迭代器
for (line <- lines) println(line)
1
2
3
4
5

6.条件、循环

条件

val a = if (x>0) 1 else -1

循环
for循环语句格式如下:for (变量<-表达式) 语句块

for (i <- 1 to 5) println(i)
for (i <- 1 to 5 by 2) println(i)
for (i <- 1 to 5; j <- 1 to 3) println(i*j)

7.数据结构

数组

val intValueArr = new Array[Int](3)  //声明一个长度为3的整型数组,每个数组元素初始化为0
intValueArr(0) = 12 //给第1个数组元素赋值为12
intValueArr(1) = 45  //给第2个数组元素赋值为45
intValueArr(2) = 33 //给第3个数组元素赋值为33
for (i <- 0 to 2) println(intValueArr(i)) 
 val myStrArr = new Array[String](3) //声明一个长度为3的字符串数组,每个数组元素初始化为null
 myStrArr(0) = "BigData"
 myStrArr(1) = "Hadoop"
 myStrArr(2) = "Spark"
 for (i <- 0 to 2) println(myStrArr(i)) 

实际上,Scala提供了更加简洁的数组声明和初始化方法,如下:

val intValueArr = Array(12,45,33)
val myStrArr = Array("BigData","Hadoop","Spark")

列表

val intList = List(1,2,3)
val intListOther = 0::intList
val intList = 1::2::3::Nil
val intList1 = List(1,2)
val intList2 = List(3,4)
val intList3 = intList1:::intList2

元组(tuple)
元组和列表不同,列表中各个元素必须是相同类型,元组可以包含不同类型的元素。

val tuple = ("BigData",2015,45.0)
println(tuple._2)
2015

集(set)
集就是一种更为方便的列表
1.不可变集

var mySet = Set("Hadoop","Spark")
mySet += "Scala"  //向mySet中增加新的元素

2.可变集

import scala.collection.mutable.Set

val myMutableSet = Set("Database","BigData")
myMutableSet += "Cloud Computing"
println(myMutableSet)
//结果为 Set(BigData, Cloud Computing, Database)

映射(Map)
在Scala中,映射(Map)是一系列键值对的集合(类似于字典)
1.不可变映射

val university = Map("XMU" -> "Xiamen University", "THU" -> "Tsinghua University","PKU"->"Peking University")
println(university("XMU"))  //获取映射中的值
val xmu = if (university.contains("XMU")) university("XMU") else 0  
println(xmu)
//检查映射中是否包含某个值

2.可变的映射

import scala.collection.mutable.Map
val university2 = Map("XMU" -> "Xiamen University", "THU" -> "Tsinghua University","PKU"->"Peking University")
university2("XMU") = "Ximan University" //更新已有元素的值
university2("FZU") = "Fuzhou University" //添加新元素
university2 + = ("TJU"->"Tianjin University") //添加一个新元素
university2 + = ("SDU"->"Shandong University","WHU"->"Wuhan University") //同时添加两个新元素

循环遍历映射

for ((k,v) <- 映射) 语句块

例子:

for ((k,v) <- university) printf("Code is : %s and name is: %s\n",k,v)
for (k<-university.keys) println(k)


以下才是重点



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BlackTurn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值