第三章 scala入门再探

  • 类型参数化数组
val arr = new Array[String](3);
arr(0) = "Hello";
arr(1) = ",";
arr(2) = "World";
这里的arr(0) = "Hello";将被转化为arr.update(0,"Hello");即函数的调用
  • 使用列表
    1. Scala是可变的同类对象序列,而不可变的同类对象序列是列表类;
      val lst = List(1, 2, 3);
    2. 列表本身不可变
    3. 提供方法 ::: 实现叠加功能
        val fstList = List(1, 2);
        val sndList = List(3, 4);
        val trdList = fstList ::: sndList;
        println(trdList)
    结果:
        List(1, 2, 3, 4)

提供方法 :: 将新元素组合到现有列表的最前端,产生新列表作为结果返回;
空列表简写为: Nil

  • 元组
    元组是不可变的;
    元组可以包含不同类型的元素;
    val pair = (6299, “iPad Pro”);
    用方法 _数字(从1开始) 访问元组的组元
    pair _1 //结果:6299
    为什么不能用访问列表的方法来访问元组?
    因为列表的apply方法始终返回同样的类型,但元组里的类型不尽相同。所以访问方法也不一样。
    列表的索引脚标是基于0的,而元组则是基于1的(Haskell和ML等含有静态类型元组的语言,从1开始是传统的设定)。

  • 集(set)和映射(map)
    Scala的集合库区分为可变类型和不可变类型;

  • Set

    Scala API 中提供了一个set的基本特质,还提供了两个子特质,分为可变和不可变;

    var jetSet = Set("Scala", "Program");
    jetSet += "GO";
jetSet是默认的不可变集,初始化为包含了两个字符串的集,创建set的方法和创建list和array的类似,通过其伴生对象的apply工厂方法。
方法 + 对于不可变集来说,会产生一个全新集,对可变集来说则是把元素加入自身。
  • Map

    与set类似;

    import scala.collection.mutable.Map
    val map = Map[Int, String]();
    map += (1,"one");
    map += (2, "two");
    map也可表示为 (1 -> "one");
    键值对,访问map(k)得到相应的value;
  • 函数式风格
    多练习Scala集合库中的方法对体会函数式编程风格很有帮助;
    崇尚val,不可变对象和没有副作用的方法;

  • 从文件中读取文本行
    引用scala.io的Source类
    方法 getLine 返回Iterator[String]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值