Scala本地函式

541732025發表於2015-11-29

點選(此處)摺疊或開啟

  1. def main(args: Array[String]) {
  2.         val width = args(0).toInt
  3.         for (arg <- args.drop(1)) //取index==1的值
  4.          processData(arg, width) 
  5.         
  6.          var increase = (x: Int) => x + 1 //increase被賦值為一個匿名函式
  7.          println(increase(10))
  8.          increase = (x: Int) => x + 9999 //increase再被賦值
  9.         
  10.          val someNumbers = List(-11, -10, -5, 0, 5, 10)
  11.          someNumbers.foreach((x: Int) => print (x)) //自定義一個匿名函式
  12.          println
  13.          someNumbers.filter((x: Int) => x > 0).foreach((x: Int) => print (x))
  14.          println
  15.          someNumbers.filter((x) => x > 0).foreach((x: Int) => print (x))
  16.          println
  17.          someNumbers.filter(x => x > 0).foreach((x: Int) => print (x))
  18.          println
  19.          someNumbers.filter(_ > 0).foreach((x: Int) => print (x))
  20.          println
  21.          val f = (_: Int) + (_: Int) //函式也可以作為一個值
  22.          println(f(5, 10))
  23.     }
  24.     
  25.     def processData(filename: String, width: Int) {
  26.     
  27.      //本地函式-函式內部的函式,這種函式遮蔽了外部的訪問
  28.      def processLine(line: String) {
  29.      if (line.length > width)
  30.          println(filename +": "+ line)
  31.      }
  32.     
  33.      val source = Source.fromFile(filename)
  34.      for (line <- source.getLines)
  35.          processLine(line)
  36.     
  37.     }

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28912557/viewspace-1849320/,如需轉載,請註明出處,否則將追究法律責任。

相關文章