
scala
Imflash
分享知识,分享快乐
展开
-
scala-01
文章目录02.scala语言简介03.scala开发环境安装04.scala解释器05.变量06.字符串07.数据类型与操作符08.条件表达式09.循环10.break和continue11.方法定义12.方法参数13.方法调用方式14.函数02.scala语言简介scala是spark的语言基础,为了给spark学习打基础。早期,scala刚出现的时候,并没有怎么引起重视,随着Sp...原创 2019-09-18 10:06:32 · 347 阅读 · 0 评论 -
scala_隐式转换
文章目录隐式转换和隐式参数定义示例隐式转换的时机自动导入隐式转换方法隐式参数定义示例隐式转换和隐式参数隐式转换和隐式参数是scala非常有特色的功能,也是Java等其他编程语言没有的功能。我们可以很方便地利用隐式转换来丰富现有类的功能。后面在编写Akka并发编程、Spark SQL、Flink都会看到隐式转换和隐式参数的身影。定义所谓隐式转换,是指以implicit关键字声明的带有单个...原创 2019-09-21 11:14:11 · 434 阅读 · 0 评论 -
scala_高阶函数
高阶函数scala 混合了面向对象和函数式的特性,在函数式编程语言中,函数是“头等公民”,它和Int、String、Class等其他类型处于同等的地位,可以像其他类型的变量一样被传递和操作。高阶函数包含作为值的函数匿名函数闭包柯里化等等作为值的函数在scala中,函数就像和数字、字符串一样,可以将函数传递给一个方法。我们可以对算法进行封装,然后将具体的动作传递给方法,这种特...原创 2019-09-21 11:12:59 · 289 阅读 · 0 评论 -
scala_Actor并发编程
文章目录Actor介绍Java并发编程的问题Actor并发编程模型Java并发编程对比Actor并发编程创建Actor使用方式示例Actor程序运行流程发送消息/接收消息使用方式示例持续接收消息示例使用loop和react优化接收消息示例发送和接收自定义消息示例一示例二示例三WordCount案例案例介绍思路分析步骤1 | 获取文件列表步骤2 | 创建WordCountActor步骤3 | 启动A...原创 2019-09-21 11:11:37 · 395 阅读 · 0 评论 -
scala_异常处理、提取器、泛型
文章目录异常处理捕获异常示例抛出异常示例 | 抛出异常提取器(Extractor)定义提取器示例泛型定义一个泛型方法示例泛型类定义示例上下界上界定义示例下界示例非变协变逆变示例异常处理来看看下面一段代码。 def main(args: Array[String]): Unit = { val i = 10 / 0 println("你好!") }Except...原创 2019-09-21 11:08:39 · 201 阅读 · 0 评论 -
scala_Option、偏函数、正则表达式
文章目录Option类型定义示例一示例二偏函数定义示例一示例二正则表达式定义示例一示例二示例三Option类型使用Option类型,可以用来有效避免空引用(null)异常。也就是说,将来我们返回某些数据时,可以返回一个Option类型来替代。定义scala中,Option类型来表示可选值。这种类型的数据有两种形式:Some(x):表示实际的值None:表示没有值使用...原创 2019-09-21 11:04:21 · 316 阅读 · 0 评论 -
scala_样例类、样例对象、模式匹配
文章目录样例类定义样例类示例 | 定义一个样例类示例 | 可变成员变量apply方法toString方法equals方法hashCode方法copy方法样例对象定义示例 | 定义枚举简单模式匹配示例定义示例守卫示例示例匹配集合匹配数组匹配列表匹配元组示例 | 获取数组中的元素示例 | 获取List中的数据样例类样例类是一种特殊类,它可以用来快速定义一个用于保存数据的类(类似于Java POJO...原创 2019-09-21 11:02:03 · 454 阅读 · 0 评论 -
scala_特质、模板模式、对象混入、调用链
文章目录特质(trait)定义trait作为接口使用示例 | 继承单个trait示例 | 继承多个trait示例 | object继承trait特质 | 定义具体的方法示例trait中定义具体的字段和抽象的字段定义示例使用trait实现模板模式定义示例对象混入trait定义示例trait实现调用链模式责任链模式trait调用链示例trait的构造机制定义示例定义示例特质(trait)scala...原创 2019-09-21 10:58:29 · 380 阅读 · 0 评论 -
scala_继承、类型判断、抽象类、匿名内部类
继承scala语言是支持面向对象编程的,我们也可以使用scala来实现继承,通过继承来减少重复代码。定义语法scala和Java一样,使用extends关键字来实现继承可以在子类中定义父类中没有的字段和方法,或者重写父类的方法类和单例对象都可以从某个父类继承语法class/object 子类 extends 父类 { ..}示例 | 类继承定义一个Person类...原创 2019-09-21 10:55:07 · 348 阅读 · 0 评论 -
scala_单例对象、apply方法
文章目录单例对象定义单例对象示例在单例对象中定义成员方法示例工具类案例需求步骤伴生对象定义伴生对象示例private[this]访问权限示例main方法定义main方法示例实现App Trait来定义入口示例伴生对象 | apply方法定义示例单例对象scala中没有Java中的静态成员,我们想要定义类似于Java的static变量、static方法,就要使用到scala中的单例对象——obj...原创 2019-09-21 10:51:56 · 462 阅读 · 0 评论 -
scala_类和对象、构造器
文章目录类和对象创建类和对象用法示例简写方式用法示例用法示例用法示例定义示例定义案例类的构造器主构造器示例辅助构造器语法示例类和对象scala是支持面向对象的,也有类和对象的概念。我们依然可以基于scala语言来开发面向对象的应用程序。创建类和对象用法使用class来定义一个类使用new来创建对象示例创建一个Person类,并创建它的对象步骤创建一个scala项目...原创 2019-09-21 10:49:47 · 259 阅读 · 0 评论 -
scala_函数式编程
文章目录函数式编程遍历 | foreach使用类型推断简化函数定义使用下划线来简化函数定义映射 | map用法案例一案例二扁平化映射 | flatMap定义案例定义案例排序默认排序 | sorted指定字段排序 | sortBy自定义排序 | sortWith定义示例聚合 | reduce定义案例折叠 | fold定义案例函数式编程我们将来使用Spark/Flink的大量业务代码都会使用到函...原创 2019-09-21 10:46:53 · 226 阅读 · 0 评论 -
scala_数组、列表、元组、集合、map
文章目录数组定长数组定义变长数组添加/修改/删除元素求和最大值最小值排序元组定义元组访问元组定义示例一示例二示例三可变列表定义示例一示例二可变列表操作示例判断列表是否为空拼接两个列表获取列表的首个元素和剩余部分反转列表获取列表前缀和后缀扁平化(压平)拉链与拉开转换字符串生成字符串并集交集差集不可变集定义示例一示例二基本操作示例定义示例不可变Map定义示例可变Map定义示例Map基本操作基本操作示例...原创 2019-09-21 10:44:07 · 806 阅读 · 0 评论 -
scala_方法和函数
文章目录方法定义方法返回值类型推断默认参数带名参数变长参数后缀调用法中缀调用法操作符即方法花括号调用法无括号调用法函数定义函数方法和函数的区别方法转换为函数方法一个类可以有自己的方法,scala中的方法和Java方法类似。但scala与Java定义方法的语法是不一样的。定义方法语法def methodName (参数名:参数类型, 参数名:参数类型) : [return type]...原创 2019-09-21 10:39:24 · 207 阅读 · 0 评论 -
scala_条件表达式、循环
文章目录条件表达式有返回值的if块表达式for表达式简单循环嵌套循环守卫for推导式while循环实现break实现continue条件表达式条件表达式就是if表达式,if表达式可以根据给定的条件是否满足,根据条件的结果(真或假)决定执行对应的操作。scala条件表达式的语法和Java一样。有返回值的if与Java不一样的是,[!NOTE]在scala中,条件表达式也是有返回值的...原创 2019-09-21 10:37:58 · 328 阅读 · 0 评论 -
scala_变量、字符串、数据类型
文章目录声明变量语法格式在解释器中定义一个变量val和var变量使用类型推断来定义变量惰性赋值使用双引号使用插值表达式使用三引号数据类型运算符scala类型层次结构声明变量我们将来每一天编写scala程序都会定义变量。那scala语言如何定义变量呢?语法格式Java变量定义int a = 0;在scala中,可以使用val或者var来定义变量,语法格式如下:val/var ...原创 2019-09-21 10:36:25 · 615 阅读 · 0 评论 -
scala_简介和安装
文章目录scala简介为什么使用scalascala对比Java案例安装JDK安装scala SDK安装IDEA scala插件scala简介scala是运行在JVM上的多范式编程语言,同时支持面向对象和面向函数编程早期,scala刚出现的时候,并没有怎么引起重视,随着Spark和Kafka这样基于scala的大数据框架的兴起,scala逐步进入大数据开发者的眼帘。scala的主要优势是它...原创 2019-09-21 10:32:10 · 333 阅读 · 0 评论 -
scala-02
文章目录scala-0213.方法调用方式14.函数15.数组-定长数组16.数组-变长数组17.数组-遍历数组18.数组-常用算法19.元组(tuple)20.不可变列表 List21.可变列表 LIstBuffer22.列表常用操作一23.列表常用操作二24.不可变集25.可变集26.映射(Map)27.iterator迭代器28.函数式编程-foreach方法 算子RDD29.函数式编...原创 2019-09-18 10:21:47 · 283 阅读 · 0 评论 -
scala_Akka并发编程框架
文章目录Akka并发编程框架简介Akka介绍Akka特性Akka通信过程创建ActorAPI介绍入门案例实现步骤1. 创建Maven模块2. 创建并加载Actor3. 发送/接收消息Akka定时任务使用方式示例一示例二实现两个进程之间的通信案例介绍1. Worker实现2. Master实现简易版spark通信框架案例案例介绍实现思路1. 工程搭建2. 构建Master和Worker3. Work...原创 2019-09-21 11:15:28 · 503 阅读 · 0 评论