上一页 1 2 3 4 5 6 7 ··· 36 下一页
摘要: 集合有相当多的方法用来构造新的集合,如map、filter和++。我们将这些方法称作变换器(transformer),因为它们以接收者对象的形式接收至少一个集合入参并生成另一个集合作为结果。变换器可以通过两种主要的方式实现:严格的和非严格的(或称为惰性的)。严格的变换器会构造出带有所有元素的新集合。 阅读全文
posted @ 2022-08-12 16:38 linbo.yang 阅读(102) 评论(0) 推荐(0)
摘要: 每当我们编写一个模式匹配时,都需要确保完整地覆盖了所有可能的case。有时候可以通过在末尾添加一个默认case来实现,不过这仅限于有合理兜底的场合。如果没有这样的默认行为,我们如何确保自己覆盖了所有的场景呢?我们可以寻求Scala编译器的帮助,由它帮助我们检测出match表达式中缺失的模式组合。为了 阅读全文
posted @ 2022-08-10 16:17 linbo.yang 阅读(124) 评论(0) 推荐(0)
摘要: 模式的种类 通配模式(_) 常量模式 变量模式 构造方法模式 序列模式 元组模式 带类型的模式 变量绑定@ 除了独自存在的变量模式,我们还可以对任何其他模式添加变量。只需要写下变量名、一个@符号和模式本身,就可以得到一个变量绑定模式,这意味着这个模式将像平常一样执行模式匹配。如果匹配成功,就将匹配的 阅读全文
posted @ 2022-08-10 16:14 linbo.yang 阅读(171) 评论(0) 推荐(0)
摘要: 第6章介绍了Scala面向对象的一些基础概念。本章将接着第6章,更详细地介绍Scala对于面向对象编程的支持。我们将对比类之间的两个最基本的关系:组合和继承。组合的意思是一个类可以包含对另一个类的引用,并利用这个被引用的类来帮助它完成任务。而继承是超类/子类的关系。除此之外,我们还会探讨抽象类、无参 阅读全文
posted @ 2022-08-10 16:06 linbo.yang 阅读(33) 评论(0) 推荐(0)
摘要: 控制抽象是这样的函数,满足如下条件 参数是函数 函数参数没有输入值也没有返回值 ()=>Unit 简化处理:fun(funName:=>Unit) 第7章指出,Scala并没有很多内建的控制抽象,因为它提供了让用户自己创建控制抽象的功能。第8章介绍了函数值。本章将向你展示如何应用函数值来创建新的控制 阅读全文
posted @ 2022-08-10 15:26 linbo.yang 阅读(89) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2022-08-10 14:14 linbo.yang 阅读(17) 评论(0) 推荐(0)
摘要: 对于结果类型为Unit的方法,如ChecksumAccumulator的add方法,其执行目的是得到副作用。副作用通常是指改变方法外部的某种状态或者执行I/O的动作。对本例的add方法而言,其副作用是给sum重新赋值。那些仅仅因为其副作用而被执行的方法被称作过程(procedure)。// 位于Ch 阅读全文
posted @ 2022-08-09 18:30 linbo.yang 阅读(63) 评论(0) 推荐(0)
摘要: WithFilter (scala-lang.org) Scala 3 (scala-lang.org) 阅读全文
posted @ 2022-08-04 23:24 linbo.yang 阅读(17) 评论(0) 推荐(0)
摘要: 考虑以下例子,我们试图将输入的List[Double] 和List[String] 区分开: // src/main/scala/progscala2/patternmatching/match-types.sc scala> for { | x <- Seq(List(5.5,5.6,5.7), 阅读全文
posted @ 2022-08-02 18:04 linbo.yang 阅读(59) 评论(0) 推荐(0)
摘要: 正则表达式可以很方便地从符合特定结构的字符串中提取数据。Scala封装了Java 的正则表达式。以下给出一个示例: 1 // src/main/scala/progscala2/patternmatching/match-regex.sc 2 3 val BookExtractorRE = """B 阅读全文
posted @ 2022-08-02 17:54 linbo.yang 阅读(252) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 ··· 36 下一页