[关闭]
@ZSCDumin 2018-06-24T04:02:32.000000Z 字数 1653 阅读 651

Scala语法


常用语法:

  1. package com.zscdmin
  2. object demo1 {
  3. def main(args: Array[String]): Unit = {
  4. val a = List(1, 2, 3)
  5. val b = a.reduceLeft(_ + _)
  6. val c = a.reduceLeft((x, y) => x + y) //等价于上面的写法
  7. val d = a.foldRight(1)(_ * _)
  8. val e = a.foldLeft(0)(_ + _)
  9. println(b)
  10. println(c)
  11. println(d)
  12. println(e)
  13. val stream = 1 #:: 2 #:: 3 #:: Stream.empty
  14. println(stream(0)) //取第一个元素
  15. println(stream.apply(0)) //取第一个元素,【def apply(n: Int): A 通过列表中的索引选择一个元素】
  16. val l = 0 to 5
  17. println(l.map(x => x * x).zip(10 to 15))
  18. println(l.view.map(x => x * x).zip(10 to 15).force) //加上force强制求值,不加则暂时不求值
  19. val days = Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
  20. days.zipWithIndex.foreach { case (day, count) => println(s"$count is $day") }
  21. println("----------------")
  22. for ((day, count) <- days.zipWithIndex) {
  23. println(s"$count is $day")
  24. }
  25. println("----------------")
  26. for ((day, count) <- days.zip(Stream from 1)) {
  27. println(s"$count is $day")
  28. }
  29. val list1: List[Int] = List(1, 2, 3, 4)
  30. val list2: List[Int] = List(5, 6, 7, 8)
  31. val list3: List[Int] = List(2, 3, 4, 5, 6)
  32. val list4: List[Int] = List(7, 8, 9, 0, 3)
  33. var zip = list1.zip(list2)
  34. var zipAll = list1.zipAll(list2, "-2", "-1") //若列表长度不一致,对方列表较短的话使用thatElem进行填充
  35. var zipAll1 = list2.zipAll(list1, "-2", "-1") //若列表长度不一致,自身列表比较短的话使用thisElem进行填充
  36. println(zip) //zip函数将传进来的两个参数中相应位置上的元素组成一个pair数组。如果其中一个参数元素比较长,那么多余的参数会被删掉
  37. println(zipAll)
  38. println(zipAll1)
  39. //zipWithIndex函数可以将元素和其所在的下表组成一个pair
  40. var zipWithIndex = list1.zipWithIndex
  41. println(zipWithIndex)
  42. //unzip函数拆分元祖为List
  43. println(zip.unzip)
  44. var sort = List(10, 5, 8, 1, 7).sortWith(_ > _)
  45. println(sort)
  46. def sum(args: Int*) = {
  47. var result = 0
  48. for (arg <- args) result += arg
  49. result
  50. }
  51. println(sum(1 to 5: _*))
  52. val arr = Array(1, 2, 3, 4, 5)
  53. val Array(1, 2, _*) = arr
  54. val Array(first, second, _*) = arr
  55. println(first)
  56. println(second)
  57. val fun = 3 * (_: Double)
  58. println(fun(2))
  59. println(a.reduce(_ + _))
  60. println(a.map(_ + 2))
  61. }
  62. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注