Scala笔记
文章平均质量分 94
学习 ,总结 ,探讨
白眼黑刺猬
技术分享 ,线上线下授课
微信 17710299606
展开
-
SCALA-DAY03(课堂代码)
集合常用函数1 forEachpackage com._51doit.day03.demo/** * FileName: ForEachDemo * Author: 多易教育-DOIT * Date: 2020/11/2 0002 * Description: * 对集合中的每个元素处理 适用所有的集合类型 * Array * List * Iterator * Set * Map * 注意 : 方法是没有返回值 常用于打印测试 */.原创 2020-11-02 09:51:21 · 1340 阅读 · 3 评论 -
SCALA-DAY01(scala-day01)(scaladay01)
1 scala简介面向对象和面向函数 静态类型提高效率 运行在JVM和JS上特点优雅 简洁 速度快 兼容HADOOP生态 spark是scala编写的 函数式编程有利于数据流式处理2 scala环境搭建2.1 环境变量配置下载windows环境解压 --系统--高级设置--系统环境变量 配置SCALA_HOMElinux环境解压 配置 /etc/profile2.2 IDEA搭建scala项目2.2.1...原创 2020-10-30 09:50:29 · 1637 阅读 · 3 评论 -
scala详细笔记(十三)scala之泛型详解
泛型用于指定方法或类可以接受任意类型参数,参数在实际使用时才被确定,泛型可以有效 地增强程序的适用性,使用泛型可以使得类或方法具有更强的通用性。泛型的典型应用场景 是集合及集合中的方法参数,可以说同 Java 一样,Scala 中泛型无处不在,具体可查看 Scala 的 API !1 泛型类和泛型方法的定义泛型类:指定类可以接受任意类型参数。泛型方法:指定方法可以接受任意类型参数。** * @Auther: 多易教育-行哥 * @Date: 2020/6/29 * @Descrip.原创 2020-06-29 20:34:25 · 5039 阅读 · 1 评论 -
scala详细笔记(十二)scala之IO
1 输入1.1 输入行** * @author Hangge.z WX:17710299606 */object LineIO { def main(args: Array[String]): Unit = { // 读取文件 val bs: BufferedSource = Source.fromFile("d://data.txt") // 获取所有的行 val lines: Iterator[String] = bs.getLines()原创 2020-06-27 21:42:18 · 2373 阅读 · 0 评论 -
scala详细笔记(十一)scala高级语法之比较器
Scala提供两个特质(trait)Ordered与Ordering用于比较。其中,Ordered混入(mix)Java的Comparable接口,而Ordering则混入Comparator接口。众所周知,在Java中实现Comparable接口的类,其对象具有了可比较性;实现comparator接口的类,则提供一个外部比较器,用于比较两个对象。Ordered的用法和java中的Comparable接口一致 定义了单一的比较方式 Ordering的用法和java中的Comparator接口.原创 2020-06-27 21:39:19 · 2580 阅读 · 0 评论 -
scala详细笔记(十一)-scala高级语法之隐式详解
通过隐式转换,程序员可以在编写Scala程序时故意漏掉一些信息,让编译器去尝试在编译期间自动推导出这些信息来,这种特性可以极大的减少代码量,忽略那些冗长,过于细节的代码。使得静态类型动态化 为现有类库添加功能 隐式的代理增强一个类或者一个方法1. 隐式变量使用 implicit修饰的变量称之为隐式变量 ,同一种类型的隐式变量在上下文中只能声明一个object MyValue { implicit val age:Int = 19 implicit val name:Stri原创 2020-06-27 21:33:49 · 3073 阅读 · 0 评论 -
scala详细笔记(十)-scala高级语法之柯里化和闭包
1 柯力化1.1 简介语法 : 函数有多个参数列表柯里化(Currying)指的是把原来接受多个参数的函数变换成接受一个参数的函数过程,并且返回接受余下的参数且返回结果为一个新函数的技术。所以柯力化的现象是 : 函数名()()意义: 方便数据的演变, 后面的参数可以借助前面的参数推演 , foldLeft的实现有多个参数列表 的函数就是柯里化函数,所谓的参数列表就是使用小括号括起来的函数参数列表curry化最大的意义在于把多个参数的function等价转化成多个单参数funct..原创 2020-06-27 14:54:03 · 2728 阅读 · 0 评论 -
scala详细笔记(九)-scala高级语法之高阶函数
1 简介Scala函数式编程是scala的重中之重,老师多次强调它的重要性,spark当中的计算都是用scala函数式编程来做,高级函数也是其独特的一个特性,并且spark基于集合,这样可以使scala发挥其对于集合计算的强大功能。首先,函数/变量同是一等公民,函数与变量同等地位,函数的定义可以单独定义,可以不依赖于类、接口或者object,而且独立存在,独立使用,并且可以赋值给变量。函数可以以一种特殊对象的形式存在 ,那么函数就可以作为方法的参数和方法的返回值使用!!函数的参数是函数的函数或.原创 2020-06-27 10:44:25 · 2484 阅读 · 0 评论 -
scala详细笔记(八)-scala面向对象
本节目录类和对象 权限修饰符 继承 抽象类和特质 样例类 匹配模式1 类和对象1.1类cala语言中没有static成员存在,但是scala允许以某种方式去使用static成员这个就是伴生机制,所谓伴生,就是在语言层面上,把static成员和非static成员用不同的表达方式,class和object,但双方具有相同的package和name,但是最终编译器会把他们编译到一起,这是纯粹从语法层面上的约定。通过javap可以反编译看到。另外一个小魔法就是单例,单例本质上是通原创 2020-06-24 14:39:25 · 3167 阅读 · 0 评论 -
scala详细笔记(七)scala集合练习题 [函数练习题][scala案例][scala练习]
0 经典WorkCount案例统计文本文件中单词出现的次数import scala.io.Sourceimport scala.reflect.io.File/** * @Author 多易教育 - 行哥 * */object WordCount { def main(args: Array[String]): Unit = { // IO 读取本地磁盘中的数据 val source = Source.fromFile("d://word.txt")原创 2020-06-24 12:47:00 · 3919 阅读 · 1 评论 -
scala详细笔记(六)scala函数详解
1foreach迭代遍历集合中的每个元素,对每个元素进行处理 ,但是没有返回值,常用于打印结果数据 !val ls = List(1,3,5,7,9)ls.foreach(println) // 打印每个元素ls.foreach(println(_))// 打印每个元素ls.foreach(x=>println(x*10)) // 每个元素乘以10 打印结果ls.foreach(x=>print(x+" "))// 打印每个元素 空格隔开/** * foreach..原创 2020-06-23 20:57:11 · 3592 阅读 · 0 评论 -
scala详细笔记(五)scala集合详解
1 简介scala中的集合分为两种 ,可变集合和不可变集合, 不可变集合可以安全的并发的访问!集合的类主要在一下两个包中1) 可变集合包scala.collection.mutable2) 不可变集合包scala.collection.immutablescala默认使用的是不可变的集合 , 因此使用可变的集合需要导入可变集合的包scala的集合主要分成三大类Seq 序列 Set 不重复集 Map 键值映射集注意: 所有的集合都继承自Iterator迭代器这个特质...原创 2020-06-22 21:53:20 · 4315 阅读 · 3 评论 -
scala详细笔记(四)scala基础语法之方法和函数详解
方法和函数的作用几乎是一样的,但是函数在使用的过程中更加灵活和多样化 scala中函数是头等公民 . 可以作为方法的返回值和参数使用 scala是一个集面向对象和面向函数于一身的多范式编程语言 , 灵活的函数是函数式编程的一种体现 函数的使用使代码更加的简介和灵活1 函数scala中一种函数式编程语言 ,函数是scala中的头等公民,建议优先使用函数 , 函数实现的功能和方法一样 ,但是我们可以把函数理解成一种特殊的业务逻辑对象 ,所以函数可以作为参数和返回值.... 函数也是用来处理数..原创 2020-06-22 21:13:14 · 3356 阅读 · 3 评论 -
scala详细笔记(三)scala基础语法之流程控制
1IF...ELSE语句1.1if...else 语句def main(args: Array[String]): Unit = { val x = 1 //判断x的值,将结果赋给y val y = if (x > 0) 1 else -1 //打印y的值 println("y=" + y) //支持混合类型表达式 val z = if (x > 1) 1 else "error" //打印z的值 println("z=" + z..原创 2020-06-22 20:56:36 · 3091 阅读 · 0 评论 -
scala详细笔记(二) scala基础语法之变量和运算符
1 变量1.1 数据类型scala中的数据类型和java中数据类型最大的区别就是scala中的数据类型都是对象 , 也就是scala中没有原生的数据类型! scala中的数据类型分成两类 AnyVal(值类型)和AnyRef(引用类型) , 两种对象都属于Any ,都是对象val age:Int = 23age是一个Int数值类型的变量 , 数值类型的变量也属于一个对象 , 所以age变量就是一个对象,也拥有很多方法数据类型一览图 Byte原创 2020-06-22 20:50:47 · 2965 阅读 · 0 评论 -
scala详细笔记(一) scala基础环境搭建
1Scala概述1.1.什么是ScalaScala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序。面向函数和面向对象的混合式编程1.2.为什么要学Scala1.优雅:这是框架设计师第一个要考虑的问题,框架的用户是应用开发程序员,API是否优雅直接影响用户体验。2.速度快:Scala语言表达能力强,一行代码抵得上Java多行,开发速度快;Scala是静态编译的,所...原创 2020-06-22 20:31:48 · 3024 阅读 · 1 评论