scala for循环

scala for循环功能强大啊,for条件可以写各种表达式

通过一个demo来看一下,这个是一个讲yield关键字的demo:《Scala中的yield

object YieldDemo {

  private val files = (new java.io.File("./src/com/shang/yielddemo")).listFiles

  private def fileLines(file: java.io.File) =
    scala.io.Source.fromFile(file).getLines.toList

  def main(args: Array[String]): Unit = {
    println(files.size)

    for(file <- files){
      println(file.getName)
    }

    val lineLengths =
      for {
        file <- files
        if file.getName.endsWith(".txt")

        line <- fileLines(file)
        trimmedLine = line.trim
        if trimmedLine.matches(".*棒.*")
      } yield line + ":合计" + trimmedLine.length + "个字。"

    lineLengths.foreach(println)
  }
}

输出:

2
demotxt.txt
YieldDemo.scala
Let‘s go...太棒咯~:合计15个字。
Scala特棒!:合计8个字。

时间: 2024-10-01 05:08:07

scala for循环的相关文章

scala学习手记2 - scala中的循环

先来看一段Java中的循环: for (int i = 1; i < 4; i++) { System.out.print(i + ","); } 毫无疑问,scala可以让这个循环更加简洁.根据上一节中的内容,没有必要显示指定变量i的类型,我们甚至不需要声明这个变量.其次输出的语句也可以更加简洁一些,在scala中可以直接使用println()这个方法输出字符串.最后scala的循环结构也是非常的轻量级.好了,可以看一下代码了: for (i <- 1 to 3) { p

Scala 有几种其它的循环结构

Scala while 循环 和许多语言类似,while 循环在条件为真的时候会持续执行一段代码块.例如,下面的代码在下一个星期五,同时又是13号之前,每天打印一句抱怨的话: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 // code-examples/Rounding/while-script.scala  // WARNING: This script runs for a LOOOONG time!  import java.util.Calendar

Scala学习笔记及与Java不同之处总结-从Java开发者角度

Scala与Java具有很多相似之处,但又有很多不同.这里主要从一个Java开发者的角度,总结在使用Scala的过程中所面临的一些思维转变. 这里仅仅是总结了部分两种语言在开发过程中的不同,以后会陆续更新一些切换后在开发过程中值得注意的地方.以下列举了部分,但令人印象深刻的Scala语言的不同之处,具体的代码演示样例及具体阐述见下文. ? Scala中可直接调用Java代码,与Java无缝连接. 语句能够不用";"结束.且推荐不适用";". 变量声明时以var或va

Scala详解---------控制结构和函数

条件表达式: Scala的if else语法结构和Java的一样,不过,Scala的if else表达式有值,这个值就是跟在if或者else后面的表达式的值. 例如: if(x>0) 0 else 1 该表达式的值就是0或者1,具体的根据x值判断. 可以将if else表达式的值赋值给变量: val s=if(x>0) 0 else 1 这个跟如下语句一致: if(x>) s=0 else s=1 当然,第一种写法更好,它可以用来初始化一个val(常量),而第二种s必须是var(变量).

Scala具体解释---------控制结构和函数

条件表达式: Scala的if else语法结构和Java的一样.只是,Scala的if else表达式有值.这个值就是跟在if或者else后面的表达式的值. 比如: if(x>0) 0 else 1 该表达式的值就是0或者1,详细的依据x值推断. 能够将if else表达式的值赋值给变量: val s=if(x>0) 0 else 1 这个跟例如以下语句一致: if(x>) s=0 else s=1 当然.第一种写法更好,它能够用来初始化一个val(常量),而另外一种s必须是var(变

[原创]Scala学习:for,function,lazy

1.for循环是一个循环控制结构,可以有效地编写需要执行的特定次数的循环.Scalar的循环说明如下的各种形式: 1)Scala中for循环最简单的语法是: for( var x <- Range ){ statement(s); } 在这里,范围可能是一个数字范围,并且表示为i到j或有时像i到j左箭头 < - 操作者被称为生成器,这样命名是因为它是从一个范围产生单个数值. 2)for循环中,循环将遍历给定范围内的所有可能的计算,可以使用分号 (;) 分隔多个范围.下面是使用两个范围的例子,也

Spark(七) -- Scala快速入门

Scala作为Spark的开发语言,想要成为Spark高手,精通Scala是必须要走的一条路 然后一门语言并不是你想精通就能够精通的,更何况是Scala这种面向对象又面向函数的编程语言,个人觉得其学习的门槛会比C#,Java等面向对象语言要高 所以,这篇文章是建立在有一点编程语言知识的基础上的(如学过C#或者Java等),其实所有语言都是大同小异的,学会了一门语言在学其他的就不会像刚开始那么吃力了,因为它们很多概念都是相通的 本篇文章主要是介绍Scala本身的一些特性,以便以能够快速的上手开发,

Scala学习笔记(二)(for循环相关)

Scala里if...else语句 if语句不管是在哪种语言里是使用最多的语句了. scala的if语句与java如出一辙. 举个栗子就不再赘述: 一个 if 语句的语法: if(Boolean_expression) { // Statements will execute if the Boolean expression is true } 如果布尔表达式的值为true,那么if语句里面的代码模块将被执行.如果不是这样,第一组码if语句结束后(右大括号后)将被执行. 示例: object

Scala学习笔记及与Java不同之处总结-从Java开发人员角度

Scala与Java具有许多相似之处,但又有许多不同.这里主要从一个Java开发人员的角度,总结在使用Scala的过程中所面临的一些思维转变.这里只是总结了部分两种语言在开发过程中的不同,以后会陆续更新一些切换后在开发过程中值得注意的地方.下面列举了部分,但令人印象深刻的Scala语言的不同之处,具体的代码示例及详细阐述见下文. ? Scala中可直接调用Java代码,与Java无缝连接: 语句可以不用";"结束,且推荐不适用";": 变量声明时以var或val开头