Scala编程

以下是为您整理出来关于【Scala编程】合集内容,如果觉得还不错,请帮忙转发推荐。

【Scala编程】技术教程文章

Scala编程思想测试类AtomicTest.scala

Scala编程思想附录1的测试类。package com.atomicscalaimport language.implicitConversionsimport java.io.FileWriterclass AtomicTest[T](val target:T) { val errorLog = "_AtomicTestErrors.txt" def tst[E](expected:E)(test: => Boolean){ println(target) if(test == false) { val msg = "[Error] expected:\n" + expected println(msg) val el = new FileWriter(errorLog,true) el.wri...

scala编程第17章学习笔记(4)——元组【代码】

元组可以把固定数量的条目组合在一起以便于作为整体传送。不像数组或列表,元组可以保存不同类型的对象。元组常用来返回方法的多个值。例如,下面的方法找到集合中的最长单词并返回它的索引:scala> def longestWord(words: Array[String]) = {| var word = words(0)| var idx = 0| for (i <- 1 until words.length)| if (words(i).length > word.length) {| word = words(i)| idx = i| }| (word, idx)| } longestWord: (words: Ar...

Scala编程入门---面向对象编程之Trait【代码】

Scala中Trait是一种特殊概念首先我们可以将Triat做为接口来使用,此时的Triat就与java中的接口非常相似在Triat中可以定义抽象方法,就与抽象类中的抽象方法一样,只要不给出具体的实现即可类可以使用extend是关键字来继承Triat,注意这里不是Implement,而是extends,在Scala中没有Implement的概念,无论是继承还是Triat都是extends类继承Triat后,必须实现其中的抽象方法,实现是不需要override关键字Scala不支持对类进行多继承,...

scala编程第19章学习笔记(1)——类型参数化【代码】

一、queues函数式队列函数式队列是一种具有以下三种操作方式的数据结构: head 返回队列的第一个元素。tail 返回除第一个元素之外的队列。scala> import scala.collection.immutable.Queue import scala.collection.immutable.Queuescala> val q = Queue(1, 2, 3) q: scala.collection.immutable.Queue[Int] = Queue(1, 2, 3) 实现函数式队列的一种简单方案是以 List作为功能的表达类型。这样,head和tail将转为List的相同操作,而...

scala编程之模式匹配和异常处理

package com.lyzx.day20181006import java.io.{FileNotFoundException, FileReader, IOException}class MatchTest {/*** match 对应 Java 里的 switch,但是写在选择器表达式之后。即: 选择器 match {备选项}。* match 表达式通过以代码编写的先后次序尝试每个模式来完成计算,只要发现有一个匹配的case,* 剩下的case不会继续匹配。* f1 和 f2 方法演示* @param x* @return*/def f1(x:Any): String = x match{case 1 => "one"cas...

20小时玩转Scala编程(Spark必备)

网盘地址:https://pan.baidu.com/s/1NdFAD5K3XkoWAzo0uWDqtQ 提取码: 7k7j 本课程紧抓重点、言简意赅、深入浅出的讲解Scala编程,旨在学员能快速上手并灵活掌握。 课程以实操为主,提供完整详细的源码,供学员学习或应用到项目中。课程的课件也很详细,在学员不方便看视频的时候直接看课件并结合源码,同样可以达到很好的学习效果,并能大幅节省学习时间。 课程大纲: 第一讲、Scala环境和IDE使用,数据类型第二讲、控制语句,if、...

Scala编程之闭包(closure)【代码】

一、概念 闭包:我们把一个函数与其相关引用环境(变量)组合成一个整体叫做闭包概念晦涩难懂,下面我们用一个例子说明 二、小例子 def minusxy(x:Int) = (y:Int)=>x-y val f=minusxy(20) println("f(1)="+f(1))//19 println("f(2)="+f(2))//18minusxy中x是匿名函数外部变量,但是却被用在匿名函数的里面,就像关在匿名函数里面一样,所以我们把一个函数与其相关引用环境(变量)组合成一个整体叫做闭包 解释:1) (y: Int)=>x-y返回的是...

Scala编程之伴生对象【代码】【图】

伴生对象是scala中静态的概念 Scala语言是完全面向对象(万物皆对象)的语言,所以并没有静态的操作(即在 Scala中没有静态的概念)。但是为了能够和Java语言交互(因为Java中有静态概念),就产生了一种特殊的对象来模拟类对象,我们称之为类的伴生对象。这个类的所有静态内容都可以放置在它的伴生对象中声明和调用。 伴生对象的使用 下面我们通过一个小案例,对伴生对象和伴生类的特点进行探讨 //首先我们创建伴生类class ScalaPerson和伴...

Scala编程之惰性函数【代码】

一、为什么需要惰性函数 惰性计算(尽可能延迟表达式求值)是许多函数式编程语言的特性。惰性集合在需要时提供其元素,无需预先计算它们,这带来了一些好处。首先,您可以将耗时的计算推迟到绝对需要的时候。其次,您可以创造无限个集合,只要它们继续收到请求,就会继续提供元素。函数的惰性使用让您能够得到更高效的代码。Java并没有为惰性提供原生支持, Scala提供了,使用很方便。 二、java实现懒加载 懒汉式 public class LazyDemo {pri...

Scala编程中常见错误:Error:(28, 21) value foreach is not a member of java.util.List[String]

问题展示 在 Scala 编程中经常会使用 Java 的集合类型,但是使用中会出现如下错误: java.util.List[String]Error:(28, 21) value foreach is not a member of java.util.List[String]for(line <- lines){2.java.util.Set[String]Error:(24, 29) value foreach is not a member of java.util.Set[String]for (key <- reducedList.keySet) {^3.java.util.ArrayList[Object]Error:(21, 22) value filter is not a member of java.uti...