三目运算

  1. var result = if(7 > 13) true else false

集合

数组

一维数组
  1. // 声明数组
  2. var nums:Array[String] = new Array[String](3)
  3. // 或者
  4. var nums = new Array[String](3)
  5. // 数组赋值
  6. nums(0) = "Nirvana"
  7. nums(1) = "age"
  8. var nums = Array("name", "age")
  9. // 遍历数组
  10. var nums = Array(1,2,3,4)
  11. for(x <- nums) {
  12. println(x)
  13. }
  14. for(i <- 0 to (nums.length - 1)) {
  15. println(nums(i))
  16. }
  17. // 合并数组
  18. var list1 = Array(1,2)
  19. var list2 = Array(3,4)
  20. var mergeNums = concat(list1, list2)

二维数组
  1. // 多维数组
  2. var matrix = Array.ofDim[Int](3,4)
  3. for(i <- 0 to 2) {
  4. for(j <- 0 to 2) {
  5. matrix(i)(j) = j;
  6. }
  7. }

Map

  1. // map定义
  2. var map:Map[Char, Int] = Map()
  3. // 初始化定义map
  4. var map = Map("red" -> "#FF0000", "azure" -> "#F0FFFF")
  5. // 添加键值对
  6. map += ('I' -> 2)
  7. // 返回map 的key的集合, value 的集合
  8. println(map.keys())
  9. println(map.values())
  10. // Map 合并
  11. var color1 = Map("red" -> "#FF0000")
  12. var color2 = Map("blue" -> "#0033FF")
  13. // ++ 作为运算符[合并]
  14. var colors = color1 ++ color2
  15. // ++ 作为方法
  16. colors = color1.++(color2)
  17. // 查看是否包含某个key
  18. if(colors.contains("red)) {
  19. println("包含 red")
  20. }

scala符号的使用

::: [++] [++:] 表示拼接两个集合中的元素

  1. var list1 = List(1, 2, 3)
  2. var list2 = List(4, 5)
  3. var list = list1 ::: list2
  4. println(list) // 打印结果. List(1, 2, 3, 4, 5)

::[+:] 使用在集合中, a :: b 表示将 a 作为一个元素插入到b 的最前面

  1. var list1 = List(1, 2, 3)
  2. var list2 = List(4, 5)
  3. list1 = 10 :: list1
  4. println(list1) // 打印出来 List(10, 1, 2, 3)
  5. var list = list1 :: list2
  6. println(list) // 打印出来 List(List(1, 2, 3), 4, 5)

[:+] 插入的效果同上, 但是从后面插入的

=> 定义函数, xxx => yyy. xxx 函数变量, yyy 函数返回值

<- 遍历集合.

  1. for(i <- arrs) {}

-> 返回一个元组.

  1. val tuple = 1 -> 2
  2. println(tuple) // 打印结果. (1,2).

_ 下划线

  1. // 1. 初始化的时候
  2. var name: String = _ // 等同给 name 赋值为null
  3. // 2. import 引入的时候
  4. import scala.math._ // 表示引入 math 下的所有内容. 等同java 中的 import java.math.*
  5. // 3. 集合中, 这个里面的 _ 就有点类似this 的感觉
  6. var nums = (1 to 10).map(_ + 1)
  7. println(nums) // Vector(2, 3, 4, 5, 6, 7, 8, 9, 10, 11).
  8. // 4. 模糊匹配. 这里面的 _ 类似一个default 的时候作用
  9. var v = "c"
  10. var result = v match {
  11. case "a" => 1
  12. case "b" => 2
  13. case _ => "result"
  14. }
  15. println(result) // 这边打印 result
  16. // 5. 偏函数的使用方法
  17. def sum(num1: Double, num2: Double): Double = {
  18. var sum = num1 + num2
  19. sum
  20. }
  21. val result = sum(3.5, _)
  22. println(result(6.4)) // 打印结果. 9.9. 这边调用result 等到调用 sum(3.5, 6.4)

_N 下划线数字: 访问元组中的第N 个元素[从1 开始].

  1. val tuple = ("name", "age", "birth", "sex")
  2. println(tuple._3) // 打印结果. birth