• 元组,集合,映射


    元组
    1. 元组是不可变的。
    2. 元祖可以包换不同类型的元素
    val a = ('1',1) // 创建元组
    println(a._1)  //读取元组内元素
    

    读取元组 内元素以 ._1 的形式读取。元祖的索引是基于 1

    元组的实际类型取决于 它含有的元素的数量,和元素的类型。

    Tuple2[Char,Int] 即上面的a 元组的类型。

    val b = ('a',1,"abc") 
    //Tuple3[Char,Int,String] 类型。
    
    如果Array和List放入多种类型的元素,那么会是Any类型。
    val c = Array('a',"acb",111) //Array[Any] = Array(a,acb,111)
    val d = List('a',"abc",111) //List[Any] = List(a,abc,111)
    
    集合 Set

    结合具有可变不可变两种类型。

    默认是不可变 的。

    var f = Set("ab","cdf")
    f += "ghig" // 因为模式是不可变的,所以该操作其实是创建了一个新的Set 并重新赋值给f,所以,需要f 为var的
    println(f)
    

    使用可变集合

    import scala.collection.mutable.Set
    val movSet = Set("a","bc")
    movSet += "def" //因为是可变的,所以,movSet确实是在其自身添加了一个新元素,所以,movSet 可以使用val
    println(movSet)
    

    以上使用的是Set 特质(trait,类似于java的接口),如果需要指定特定的类来实例化对象

    import scala.collection.immutable.HashSet
    val hashSet = HashSet("fff","fdafd")
    
    Map

    mapset 一样,分可变不可变类型

    默认是不可变 的。

    import scala.collection.mutable.Map
    val ef = Map[Int,String]()
    ef += (1 -> "Hello")
    ef += (2 -> "world")
    
    val b = Map(1 -> '1',2 -> '2',3 -> '3')
    
    简分两种编程风格
    def printArgs(args: Array[String]) = {
      var i = 0   //引入了一个变量 i,每次循环都会更改i 的值,所以这是一个指令式编程
      while (i < args.length){
        println(args(i))
        i += 1
      }
    }
    
    def printArgs(args: Array[String]) = {
      for(arg <- args){ // <- 会生成一个 生成器,每次循环生成一个新的不可变元素,所以这是函数式风格编程。
        println(arg)
      }
    }
    
    def printArgs(args: Array[String]) = {
      args.foreach(pringln)  //同上,不过更加简化
    }
    
  • 相关阅读:
    Mysql添加用户与授权
    php导出数据到csv
    mysql导入数据和导出数据
    null在mysql中的不同表现
    乌班图安装Lnmp环境
    php框架路由美化后提示No input file specified
    cookie删除失效问题
    MongoDb安装
    MongoDb简介
    位置索引介绍
  • 原文地址:https://www.cnblogs.com/jijizhazha/p/7135980.html
Copyright © 2020-2023  润新知