Scala基础学习之tuple(元组),Array(数组),Map(映射)

scala中的tuple作为元组,和python中的元组非常相似,其中的元素可以是不同类型的,这是元组和数组最大的区别,数组中存的元素类型必须相同,tuple和Array的下标起点略有不同,tuple从1开始,Array从0开始,tuple可以通过._x方法访问tuple中的第x个元素,也可以结合for操作,同时我们的函数一般只有一个返回值,借助tuple我们可以实现多个返回值,把需要的返回值封装成一个tuple返回,返回类型可以借助scala的自带的类型推导省略掉

   def f_tuple(num1:Int,num2:Int)={
     val res=(num1+num2,num1-num2)
     res
   }
   def main(args: Array[String]): Unit = {
    val pair=("aa",123,4+5)
    println(pair._3)
    //通过迭代方法遍历
    for ( i <- pair.productIterator)
      println(i)

    //函数调用通过tuple返回多个返回值
    val res=f_tuple(11,5)

    for ( i <- res.productIterator)
      println(i)
  }

Array的声明不需要new关键字,其实是调用了内部的apply方法(后述),可以通过for或者index来访问

 def main(args: Array[String]): Unit = {
    val arr=Array(2,3,1,4,5)
    for(item <- 0 until arr.length){
      //2者都是通过index取值
      println(arr(item))
      println(arr.apply(item))
    }
    //迭代取值
    for(item <- arr)
      println(item)
  }

Map作为映射,是随处可见的一种数据结构,使用范围非常广泛,也有很多不同类别的实现子类满足各式各样的操作,下面就以最普通的Map为例,Map作为Key,Value的键值对,可以直接通过方法获取整个Map的键值或者Value值,最常见的是在for循环中利用tuple来对整个Map的键值对进行访问,以及通过get方法取对应key的value值,而通过get取不存在的key值的话会报错,因此更好的做法是用getOrElse方法来表示万一不存在该key的时候是给定哪个默认值

 def main(args: Array[String]): Unit = {
    val mymap=Map("aa"->99,"bb"->66,"cc"->77)
    println(mymap.keys)
    println(mymap.values)
    println(mymap.get("bb"))
    println(mymap.getOrElse("dd", "no this key"))

    for((k,v) <- mymap){
      println("key is "+k+"  value is "+v)
    }

  }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值