• (Windows)Scala学习3--列表、数组


    • 列表

    我们先声明一个列表:

    val list = List(1,2,3)
    

     list.head即列表的头,值为1;list.tail即列表的尾,值为(2,3),是一个新的列表

    给列表增加值,可以选择在前加,例如:

    val list = List(1,2,3)
    val listOther = 0::list
    

     或者

    val list = List(1,2,3)
    val listOther = 0+:list
    

     结果为:

    list(0,1,2,3)
    

    list不会改变,改变的是listOther

    在列表后面加:

    val list = List(1,2,3)
    val listOther = list:+0
    

     结果为:

    list(1,2,3,0)
    

     总之不管是“+:”还是“:+”,“:”永远在列表那侧。

    在学习Scala列表,进行两个列表拼接时遇到很多问题,在反复试验近半小时后,得出一种稳定不会报错的定义列表的格式:

    val site1 = 1::2::3::Nil
        val site2 = 4::5::Nil
    
        val site3 = "wang"::"jing"::Nil
        val site4 = "si"::Nil
       // 使用 ::: 运算符
        var Site1 = site1 ::: site2
        println( "site1 ::: site2 : " + Site1 )
        //使用++
        var Site11 = site1 ++ site2
        println( "site1 ::: site2 : " + Site11 )
        // 使用 List.:::() 方法
        Site1 = site1.:::(site2)
        println( "site1.:::(site2) : " + Site1 )
        //求和
        val a = Site1.sum
        println(a)
        //字符串连接
        var Site2 = site3 ::: site4
        println( "site3 ::: site4 : " + Site2 )

     运行结果:

    site1 ::: site2 : List(1, 2, 3, 4, 5)
    site1 ::: site2 : List(1, 2, 3, 4, 5)
    site1.:::(site2) : List(4, 5, 1, 2, 3)
    15
    site3 ::: site4 : List(wang, jing, si)
    
    • 数组
     1 object demo {
     2   def main(args: Array[String]): Unit = {
     3    val value = new Array[Int](3)
     4     value(0)= 1
     5     value(1)=2
     6     value(2)=3
     7     val str = new Array[String](3)
     8     str(0)="BigData"
     9     str(1)="Hadoop"
    10     str(2)="Spark"
    11     for(i<-0 to 2){
    12       println(str(i))
    13     }
    14     for(i<-0 to 2){
    15       println(value(i))
    16     }
    17 
    18 
    19   }
    20 }

    结果:

    BigData
    Hadoop
    Spark
    1
    2
    3
    
  • 相关阅读:
    使用 Promise.all 同时发起多个请求
    vite 开发 Cesium 程序最佳配置实践
    【linux学习】使用grep命令获取过滤的数据作为下个命令的入参
    记一次k8s depolyment失败处理
    powerdesigner导出excel数据字典
    vue 时间格式
    ASP.NET MVC4 跨域配置
    Win10系统中切换虚拟桌面的快捷键如何设置
    不顾一切最简NHinbernate配置并读写数据库
    Windows time_wait过多解决办法
  • 原文地址:https://www.cnblogs.com/wjwjs/p/10467201.html
Copyright © 2020-2023  润新知