Scala学习(二)---入门基础知识

元组使用:

元组List一样而是不能改变的结构,但是元组内每个元素的类型可以不同,List也可以但是List是推断为any,而Tuple推断为各个元素的类型。元组的作用一般为在方法里返回对个对象,元组对其内元素的操作为._来取元素(其是基于1开始索引而不是0)。
<span style="font-size:18px;"> val pair = (1,"Hi")
scala> print(pair._1)
1
</span>

集(set)和映射(map)

set和map都可分为可变和不可变两种特质,set可以理解为集合有很多种方法可以设置,可以参考其api,map主要是映射,常见的为<key,value>对,比如其map初始化可以为:
<span style="font-size:18px;">val treasureMap = Map[Int,String]()
treasureMap += (1 -> "Hello")
treasureMap += (2,“world”) //这种方式它内部会隐义转换为2 -> "world" 这种形式</span>

文件操作

文件操作主要是引用scala.io包中的Source类,比如以下脚本,实现的是对另一个文件的长度统计、格式化输入等。保存为myFile.scala
<span style="font-size:18px;">import scala.io.Source

def widthOfLength(s : String) = s.length.toString.length
def lengthOfLine(s:String) = s.toString.length

if (args.length>0){
  val lines = Source.fromFile(args(0)).getLines.toList  //把文件转化list并存在内存中
  val longestLine = lines.reduceLeft((a,b) => if(a.length>b.length) a else b)

  val maxWidth = widthOfLength(longestLine)
  val maxLength = lengthOfLine(longestLine)
  val sparkWidth = maxLength+maxWidth+2
  println("*"*(sparkWidth))
  for(line <- lines){
    val numSpaces = maxWidth-widthOfLength(line)
    val padding = " " * numSpaces
    val paddingLast = " "*(sparkWidth-maxWidth-line.length-2)
    println(padding+line.length + "|"+line+paddingLast+"*")
  }

  println("*"*(sparkWidth))
}
</span>
运行 scala myFile.scala asia






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值