scala yield的使用方法

scala yield的使用方法

今天无意间发现这个就琢磨了一下,就如下例子讲述一下自己的看法,希望有错的地方,大家能够指教指教。

yield的用法一个句话,就是在for循环中,每次循环都会产生一个值,然后将每次产生的值保存,最后组成一个集合。
话不多说,上代码
例子:

import java.io.File

import scala.io.Source

object test_io {
  //列出该目录下有多少文件
  lazy val files=(new File("D:\\ExploreTool\\Idea2018Workspase")).listFiles

def fileLine(file:java.io.File)={
//将文件的内容转换成列表的形式
  Source.fromFile(file).getLines().toList
}

  def main(args: Array[String]): Unit = {
//  for(file <- files){println(file)}

   val total= for{
  file<-files
  line<-fileLine(file)
  trimedLine=line.trim
} yield trimedLine+"一共"+trimedLine.length+"个字"
  total.foreach(println)
  }
}

结果:
dasfas gsdgj一共12个字
agsdga agsga一共12个字
gasdgbagbagag一共13个字

注意:yield trimedLine+“一共”+trimedLine.length+"个字"该处,yield后面跟一个参数,是每次获取值得那个参数,最后集合的值也都是这个参数中的如果我将它改成个
yield line
结果打印的就是
dasfas gsdgj
agsdga agsga
gasdgbagbagag
改成 file
结果就是
D:\ExploreTool\Idea2018Workspase\Demo.txt
D:\ExploreTool\Idea2018Workspase\Demo.txt
D:\ExploreTool\Idea2018Workspase\Demo.txt

额,代码写的不规范

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值