Scala--一些方法

一、file.getName.endsWith(".txt")    //查詢文件後綴名,此處爲查詢txt格式文件編程

二、zipWithIndex方法建立循環數組,將元素和其所在的下標組成一個pair:數組

eg: val series = Seq(0,1,1,2,3,5,8,13)app

     series.zipWithIndex函數式編程

   res33:Seq[(Int,Int)] = List((0,0),(1,1),(1,2),(2,3),(3,4),(5,5),(8,6),(13,7))函數

三、鏈接兩個數組,用concatspa

var myList1 = Array(1.9, 2.9, 3.4, 3.5)
      var myList2 = Array(8.9, 7.9, 0.4, 1.5)

      var myList3 =  concat( myList1, myList2)

四、foreach方法與map方法聯繫與區別scala

兩個方法的共同點在於:都是用於遍歷集合對象,並對每一項執行指定的方法。對象

而二者的差別在於:foreach無返回值(準確說返回void),map返回集合對象。見以下代碼及運行結果:b.getClass 獲得的是void, 而c.getClass獲得的是colletion 。再看代碼的第9-11行,foreach和map的運行結果一致。結論就是:foreach 沒法代替map. 而map方法卻能夠代替foreach。ip

問題:爲何scala提供foreach和map兩個方法呢?本人見解是scala作爲一種支持函數式編程範式的語言,必然要引入一種機制以支持數學中函數概念,而在數學中函數就是映射,因此scala中有map方法一點都不奇怪。而foreach只是用在不須要對集合執行映射操做,但須要遍歷集合時纔用到。總而言之,foreach用於遍歷集合,而map用於映射(轉換)集合到另外一個集合。字符串

 object arrayTest extends App{
  var increase=(x:Int)=>x+1
  val someNumbers = List ( -11, -10, - 5, 0, 5, 10)
  var b = someNumbers.foreach(increase)
  println(b.getClass)
  var c = someNumbers.map(increase)
  println(c.getClass)

  c.foreach((x:Int)=>print(x+" "))
  println()
  c.map((x:Int)=>print(x+" "))

}

五、count方法,計算出字符串searchMe中包含字符p的個數

val searchMe = 「peter piper apple」

val count = searchMe.count(_=='p')

相關文章
相關標籤/搜索