第三章 scala入门再探

原创 2015年11月19日 21:33:18
  • 类型参数化数组
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]

版权声明:本文为博主原创文章,未经博主允许不得转载。

《快学Scala》第三章习题解答

RT。 package com.scalalearn.scala.main //java中的List转为scala buffer至关重要的引入 import scala.collection.Jav...
  • rongyongfeikai2
  • rongyongfeikai2
  • 2016年05月14日 16:29
  • 894

快学Scala 第三章习题答案

1.编写一段代码,将a设置为一个n个随机整数的数组,要求随机数介于0(包含)和n(不包含)之间。val n = 100 //n是自己给定的 val a = scala.util.Random val...
  • power0405hf
  • power0405hf
  • 2016年01月11日 14:51
  • 1105

算法竞赛入门经典(第二版)-刘汝佳-第三章 数组与字符串 例题+习题(17/18)

说明本文是我对第三章题目的练习总结,建议配合紫书——《算法竞赛入门经典(第2版)》阅读本文。 另外为了方便做题,我在VOJ上开了一个contest,欢迎一起在上面做:第三章contest例题例3-1...
  • thudaliangrx
  • thudaliangrx
  • 2016年02月19日 17:28
  • 3513

快学Scala习题解答—第三章 数组相关操作

3 数组相关操作  3.1 编写一段代码,将a设置为一个n个随机整数的数组,要求随机数介于0(包含)和n(不包含)之间  random和yield的使用  Scala代码   import ...
  • u012762573
  • u012762573
  • 2015年08月20日 01:01
  • 1102

Scala入门到精通——第一节 Scala语言初步

本节主要内容 Scala简介 为什么要学习Scala Scala语言初步 1. Scala简介 Scala(Scala Language的简称)语言是一种能够运行于JVM和.Net平台之上的...
  • lovehuangjiaju
  • lovehuangjiaju
  • 2015年08月18日 09:35
  • 22135

《Scala开发快速入门》书籍出版

Apache Spark、Apache Kafka等基于Scala语言实现的框架在大数据生态圈内占有举足轻重的地位,它们一定程度上引领着大数据最前沿技术方向,另外Akka、Apache Gearpum...
  • lovehuangjiaju
  • lovehuangjiaju
  • 2016年09月08日 23:41
  • 4916

X Window 程式设计入门--第三章 绘图(Graphic)

http://cnpa.yzu.edu.tw/~thinker 作者:李圭烽 (Thinker; Thinker.bbs@bbs.yzu.edu.tw) (2001-06-01 20:10:00) ...
  • c1505011056
  • c1505011056
  • 2013年10月11日 14:46
  • 972

Spark(七) -- Scala快速入门

Scala作为Spark的开发语言,想要成为Spark高手,精通Scala是必须要走的一条路 然后一门语言并不是你想精通就能够精通的,更何况是Scala这种面向对象又面向函数的编程语言,个人觉得其学...
  • qq1010885678
  • qq1010885678
  • 2015年05月18日 22:55
  • 4357

Scala快速入门

Scala快速入门 变量定义 val hello="Hello Scala" val hello:String="Hello Scala" val hello:java.lang.String="...
  • huanghuitan
  • huanghuitan
  • 2017年04月08日 17:26
  • 803

Scala学习整理[第三章 入门Ⅱ]<Programming In Scala>

第三章 工具类/集合类package SecondWithProgrammingInScala.Chapter3import java.io.{File, PrintWriter}import sca...
  • u011858405
  • u011858405
  • 2016年12月29日 14:16
  • 184
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第三章 scala入门再探
举报原因:
原因补充:

(最多只允许输入30个字)