美文网首页
Scala控制结构&数组&映射&元组

Scala控制结构&数组&映射&元组

作者: hipeer | 来源:发表于2018-10-05 18:56 被阅读0次

控制结构

  • if表达式
  • 循环语句
  • for表达式
  • match表达式
// if
if (true) 1 else 0 // if表达式有返回值

// for
for (i <- 1 to 9) println(i)
for (i <- 1 to 9; j <- 1 to 9) println(j * i)
for (i <- 1 to 9 if i > 5; j <- 1 to 9 if j < 5) println(j * j)
for(i <- 1 until 9) println(i)

// match 
def sign(n: Int) = {
  n % 3 match {     // match表达式有返回值, 可以直接赋值
    case 0 => "ok"
    case _ => "no"
  }
}
def sign(n: Int) = n % 3 match { case 0 => "ok"; case _ => "no" }

  • 异常处理
    • Scala处理异常一般通过throw抛出一个异常并中止
    • 要么捕获并处理该异常,要么简单中止
    • 异常抛出:throw new IllegalArgumentException
    • 异常捕获与处理:try{函数体} catch{case…;case…}
    • 异常捕获并中止:try{函数体} finally{A.close()}
    • try{函数体} catch{case…;case…} finally{A.close()}
    • throw、try-catch-finally表达式都能生成值
    • 如:throw new IllegalArgumentException(“Error!”)
    • def f():Int=try{1} finally{2}
  • 其他语句
    • return 语句表示返回某个值,但是Scala事实上无须使用return语句
    • 对于函数来说,其默认返回值是最后出现的一个值,不用特别注明。如需要返回的值并非最后出现时,可在函数体后加上该值的标识符使之“出现”
    • 声明函数时使用return语句,必须声明返回值的类型,如def abd():T={return}
    • break/continue在C++中非常常见的控制结构语句,但在Scala中是不必要的,可以使用布尔值类型的量通过IF语句进行控制

数组

  • 数组是包含一组元素的集合
val arr = new Array[int](10) // 声明一个长度为10的Int类型的数组
val arr1 = Array(1, 2, 3, 4)  // 声明数组时给出值

// 数组遍历
for (i <- arr1) println(i) // 1 2 3 4
for (i <- 0 to arr.length - 1)  println(arr(i)) // 1 2 3 4
for (i <- 0 to (arr.length - 1, 2)) println(arr(i)) // 1 3
for (i <- (0 to arr.length).reverse) println(arr(i)) // 4 3 2 1

映射

  • 映射是包含一组键值对元素的集合(类似Java的Map集合)
// 不可变映射
val map = Map(x1 -> y1, x2 -> y2, x3 -> y3)
val map = Map((x1, y1), (x2, y2), (x3, y3))
// 可变映射
val map = scala.collection.mutable.Map(x1 -> y2, x2 -> y2)
val map = new scala.collection.mutable.Map[T1, T2]

// 获取映射键对应值
val a = map(x1)
val b = map.get(x1)
val c = map.getOrElse(x1, 0)

// 增加/删除键值对
map += (x4 -> y4, x5 -> y5)
map -= x5
// 不可变映射通过构造新映射实现
val newMap = map + (x4 -> y4, x5 -> y5)
val newMap = mpa - (x5 -> y5)

// 映射的遍历
for((key, value) <- map) println(key + ": " + value)
// 互换映射的键值
for((key, value) <- map) yield (value, key)

// 获取映射键或值的集合
val keys = map.keySet
val values = map.values

元组

  • 映射是二元元组的集合,元组是不同类型元素的集合
val tuple = ("steven", 18, "male", 1234567890, 68.4)
val tuple = Tuple5("steven", 18, "male", 1234567890, 68.4)

// 访问元组
val name = tuple _1 或 val name = tuple._1

相关文章

  • Scala控制结构&数组&映射&元组

    控制结构 if表达式 循环语句 for表达式 match表达式 异常处理Scala处理异常一般通过throw抛出一...

  • scala学习笔记(1-8)

    scala文档 包含内容 1基础 2控制结构和函数 3数组相关操作 4映射和元组 5类 6对象 7.包和引入(x)...

  • scala tuple

    object ScalaTuple extends App { // scala 的映射与元组(tuple)// ...

  • scala-数组与元组

    数组与元组 数组定义 数组几乎是所有语言中最基础的数据结构,数组可索引、类型一致、长度不变 Scala数组分为定长...

  • 《快学Scala》——数组、映射和元组

    数组 定长数组:在Scala中可以用Array,初始化一个定长数组。例如: 变长数组(数组缓冲):Scala中使用...

  • scala入门(2)

    3.数组、映射、元组、集合 3.1数组 3.1.1定长数组和变长数组 object ArrayDemo {def ...

  • Scala进阶笔记---数组、列表、元组、集合和映射

    数组、列表、元组、集合和映射 1、使用类型参数化数组【Array】 这张图可以解释Array的特性:val arr...

  • Scala-数组、映射

    1、数组1)、创建数组创建定长数组和长度可变数组 2)、数组操作 3)、遍历数组使用for循环以及until好用的...

  • Scala-数组、映射

    1、数组1)、创建数组创建定长数组和长度可变数组 2)、数组操作 3)、遍历数组使用for循环以及until好用的...

  • Scala-数组、映射

    1、数组1)、创建数组创建定长数组和长度可变数组 2)、数组操作 3)、遍历数组使用for循环以及until好用的...

网友评论

      本文标题:Scala控制结构&数组&映射&元组

      本文链接:https://www.haomeiwen.com/subject/acgqaftx.html