Scala
文章平均质量分 75
一只懒得睁眼的猫
励志成为一个技术大牛!
展开
-
scala入门介绍
2020年4月14日20:17:43参考官方文档:https://docs.scala-lang.org/getting-started/intellij-track/getting-started-with-scala-in-intellij.html IntelliJ是Scala开发人员最常用的IDE。在本教程中,我们将引导您完成使用Scala插件下载和设置IntelliJ的过程,并开始您的第一个Scala项目,以及单元测试!(1)Installation(安装)第一:确保你具有Java原创 2021-06-29 10:28:36 · 154 阅读 · 0 评论 -
Scala资料
转载网址:http://www.cnblogs.com/sunddenly/p/4411564.html转载 2016-07-28 17:21:43 · 867 阅读 · 0 评论 -
大数据系列修炼-Scala课程01
1、scala函数定义入门实战scala函数的定义: (1)定义函数的时候需要指定关键字def (2)内容包括函数的名称、函数的形参列表(先写参数的名称、在指定参数的类型)、函数的返回值(无返回值为Unit)、函数的执行体(若返回值非空,则函数的执行体必须以=进行连接) (3)无参的函数在调用的时候可以不用写() (4)函数的返回值可以不用写return 示例程序: def fun(i原创 2016-08-07 10:52:53 · 1413 阅读 · 0 评论 -
大数据系列修炼-Scala课程02
核心内容: 1、Tuple(元组)、Array(数组)、Map(映射)实战 2、文件操作入门实战1、scala中Tuple(元组)、Array(数组)、Map(映射)实战注意: (1)在元组当中可以存放很多个数据,元组中数据的访问是从下标1开始的. (2)元组是很重要的,我们通常将函数的执行结果或者算子的执行结果赋值给一个元组(因为在scala中会有这样的代码:函数计算之后会返回好几个参数(原创 2016-08-07 11:16:28 · 1082 阅读 · 0 评论 -
大数据系列修炼-Scala课程03
核心内容: 1、For进阶实战 2、Function(函数)进阶实战 3、Lazy关键字的使用1、for进阶实战(1)嵌套循环的使用 (2)for循环中加入条件表达式 示例程序:object App{ def main(args:Array[String]) { //循环方式1 for(i<- 1 to 2)for(j<- 1 t原创 2016-08-07 16:36:13 · 820 阅读 · 0 评论 -
大数据系列修炼-Scala课程04
核心内容: 1、Scala数组操作实战详解知识点: (1)静态数组使用Array进行创建、动态数组使用ArrayBuffer进行创建 (2)用户提供初始值时不要使用new (3)scala中的yield的主要作用是记住每次迭代中的有关值,并逐一存入到一个数组中. 示例程序:scala数组中的常用操作object ScalaAction1{ println("Welcome to原创 2016-08-08 10:27:16 · 811 阅读 · 0 评论 -
大数据系列修炼-Scala课程05
核心内容: 1、Map实战 2、Tuple实战 3、zip操作实战1、Map实战(1)Map映射在实际中用的非常广泛,通常用到的配置信息都是以映射的方式来呈现的,即以键值对的方式来呈现 (2)Map映射分为可变映射与不可变映射,所谓可变映射就是映射中的内容可以进行修改,所谓不可变映射就是映射中的内容不可以进行修改 (3)Scala2.10.4只支持不可变映射中的key排序 示例程序://原创 2016-08-08 17:21:11 · 790 阅读 · 0 评论 -
大数据系列修炼-Scala课程06
核心内容: 1、Scala类的使用实战 2、getter与setter实战 3、对象私有属性1、Scala类的使用实战(1)Scala中的类默认是public级别的,如果用户添加public修饰符,将会报错 (2)Scala中的属性默认是private级别的,Scala中的方法默认是public级别的. (3)类中的属性必须被赋值,否则会报错示例程序:class Student原创 2016-08-09 14:02:25 · 918 阅读 · 1 评论 -
大数据系列修炼-Scala课程07
核心内容: 1、Scala辅助构造器实战 2、Scala主构造器实战1、Scala辅助构造器实战(1)在Java当中,构造函数的名字和类的名字一样,但是在Scala中,构造函数的名字为this (2)任何辅助构造函数必须要调用其他的构造函数才能使用(Java不是) (3)Scala中的辅助构造函数除了以上两点其余用法和Java中的构造函数用法十分相似示例程序:object App6 {原创 2016-08-09 19:43:34 · 672 阅读 · 0 评论 -
大数据系列修炼-Scala课程08
核心内容: 1、Scala内部类实战详解1、Scala内部类实战代码(1)在Scala中,你几乎可以在任何语法结构中内嵌任何语法结构。你可以在函数中定义函数,在类中定义类。 (2)Java中的内部类是纯属于外部类的,而Scala中的内部类是纯属于外部类对象的,而不属于类本身 (3)在内部类中,可以通过外部类.this的方式来访问外部类的成员(同Java一样)。也可以通过为外部类创建一个别名来访原创 2016-08-10 09:21:49 · 847 阅读 · 0 评论 -
大数据系列修炼-Scala课程09
核心内容: 1、Scala单例对象详解 2、Scala伴生对象代码实战1、Scala单例对象详解(1)Scala中没有静态方法或静态字段,但是通过object语法结构可以达到同样的目的,所谓Object对象类似于我们Java中的静态(static)类,Object对象里面的所有成员都是静态的,可以通过Object对象名的方式进行访问 (2)在Scala中,静态的属性和方法只是表明了该成员具有可原创 2016-08-10 14:52:00 · 674 阅读 · 0 评论 -
大数据系列修炼-Scala课程10
核心内容: 1、scala中常用语法的两个约定(方法调用与apply方法的使用) 2、class中的apply实战详解 3、object中的apply实战详解 4、apply在伴生类与伴生对象中的实战详解1、scala中常用语法的两个约定(方法调用与apply方法的使用)Scala 是构建在 JVM 上的静态类型的脚本语言,而脚本语言总是会有些约定来增强灵活性。灵活性可以让掌握了它的人如鱼得原创 2016-08-11 09:39:49 · 790 阅读 · 0 评论 -
大数据系列修炼-Scala课程11
核心内容: 1、Scala中的继承问题 2、重写字段代码实例 3、重写方法代码实例1>scala中 extends、final关键字用法Java中相同 2>在Scala当中重写一个非抽象方法必须使用override关键字,即重写方法必须使用override 3>只有主构造器可以调用超类的主构造器,当然主构造器也可以调用超类的辅助构造器 4>Java当中一般是通过super关键字来调用父类原创 2016-08-11 16:50:17 · 717 阅读 · 0 评论 -
大数据系列修炼-Scala课程12
核心内容: 1、scala中抽象类、抽象方法、抽象字段的概念 2、抽象方法与抽象字段的重写1、scala中抽象类、抽象方法、抽象字段的概念1>在scala中,含有抽象方法或抽象字段的类为抽象类(在Java中:含有抽象方法的类叫做抽象类) 2>没有执行体的方法叫做抽象方法,scala当中的抽象方法不需要加abstract关键字,但是在Java当中,抽象方法必须加abstract关键字 3>没有原创 2016-08-11 21:01:39 · 586 阅读 · 0 评论 -
大数据系列修炼-Scala课程13+14
核心内容:1、作为接口的trait代码实战 2、在对象中混入trait代码实战1、作为接口的trait代码实战1、scala中的trait(特质)功能很强大,Java中抽象类能做的事情,trait都可以做。Java中接口能做的事情,trait也可以做,它的长处在于可以多继承—即trait既可以当做接口来用,也可以当做抽象类来用. 2、在Java当中,接口(interface)就是抽象方法和数值型原创 2016-08-12 16:20:14 · 771 阅读 · 0 评论 -
大数据系列修炼-Scala课程15
核心内容: 1、混入特质trait的3种方式 2、多重继承构造器执行顺序 3、基于trait的AOP代码实战1、混入特质的3种方式以及多重继承构造器的执行顺序1、除了在类定义中混入特质以外,还可以在特质定义中混入特质以及在对象构造时混入特质 (注意:创建对象时混入特质,要重写trait中的抽象方法 ) 2、特质的构造是有顺序的,从左到右依次构造,并且父类构造器不重复构造 构造器按如下顺序原创 2016-08-13 12:58:25 · 645 阅读 · 0 评论 -
大数据系列修炼-Scala课程16(1)
核心内容: 1、scala中包的相关概念1、scala中包的相关概念其实我认为scala中的包与Java中的包在大致功能是相同的:包类似于操作系统中的文件夹,将具有类似功能的类或者相同功能的类放在同一个文件夹里,便于组织与管理.但是scala中的包运用的更加灵活,总结如下: 1>任何地方都可以声明引入相应的包:即在Scala中,import语句可以出现在任何地方,并不仅限于文件顶部。import原创 2016-08-14 15:46:51 · 571 阅读 · 0 评论 -
大数据系列修炼-Scala课程16(2)
核心内容: 1、scala中包的创建 2、scala中包的作用域 3、scala中包对象的使用1、scala中包的创建1>scala中不但可以定义类,还可以定义包(在Java当中不可以),而且包还可以嵌套定义package spark.navigation { protected abstract class Navigator { def act()原创 2016-08-15 10:39:45 · 572 阅读 · 0 评论 -
大数据系列修炼-Scala课程17
核心内容: 1、包、类、对象、成员访问权限实战 2、伴生类、伴生对象的访问权限实战1、scala中包、类、对象、成员访问权限实战1、通过使用访问控制符可以将成员的可见度(访问权限)进行延伸package spark{ //定义第一个子包 package navigation { private[spark] class Navigator //注解1:Naviga原创 2016-08-15 12:51:51 · 491 阅读 · 0 评论 -
大数据系列修炼-Scala课程18
核心内容: 1、scala中文件的读取、写入操作代码实战 2、控制台操作代码实战1、scala中文件的读取、写入操作代码实战1>Scala中常用scala.Source类来完成文件的读取 2>Java中的IO操作在scala中同样适用 示例代码1:利用scala.Source类来完成文件的读取操作package IT04import scala.io.Sourceobject App {原创 2016-08-15 16:28:55 · 550 阅读 · 0 评论 -
大数据系列修炼-Scala课程19
核心内容: 1、正则表达式代码实战 2、正则表达式与模式匹配的代码实战1、scala中正则表达式应用实战1>正则表达式描述了一种规则,这种规则适用于很多模式的匹配,在数据清洗中很重要 2>正则表达式常用来对输入的字符串进行模式的匹配实例程序:object App { def main(args:Array[String]):Unit= { //regex是正则表达式的意原创 2016-08-15 20:12:59 · 667 阅读 · 0 评论 -
大数据系列修炼-Scala课程20
核心内容: 1、本地函数代码实战 2、作为一等公民的函数代码实战1、scala中的本地函数1>本地函数即内部函数,在一个函数内部定义的函数叫做本地函数,本地函数可以使用外部函数的形式参数,本地函数是外部函数的私有函数,外部其余成员不可以进行访问 def f()= { def g()={} }2>scala之所以支持内部函数,是因为函数在scala中是一等公民:函数可以当原创 2016-08-16 17:07:28 · 514 阅读 · 0 评论 -
大数据系列修炼-Scala课程21
核心内容: 1、scala中的部分应用函数实战解析1、scala中部分应用函数实战解析1>部分应用函数只是在“已有函数”的基础上,提供部分默认参数,未提供默认参数的地方使用下划线替代,从而创建出一个“函数值”,在使用这个函数值(部分应用函数)的时候,只需提供下划线部分对应的参数即可。 2>部分应用函数是缺少部分参数的的函数,是一个逻辑上的概念. 3>部分应用函数本质上是一种值类型的表达式,在使原创 2016-08-19 11:34:24 · 540 阅读 · 0 评论 -
大数据系列修炼-Scala课程22
核心内容: 1、Scala中的闭包实战详解1、scala中的闭包实战详解1>Scala中的闭包类似于JavaScript中的方法–对其内部的方法进行动态调用。 2>Scala中的闭包捕获到的是变量的本身而不仅仅是变量的数值,当自由变量发生变化时,Scala中的闭包能够捕获到这个变化. 3>如果自由变量在闭包内部发生变化,也会反映到函数外面定义的自由变量的数值。实例程序1:(对应1知识点)obj原创 2016-09-12 18:14:18 · 708 阅读 · 0 评论 -
大数据系列修炼-Scala课程23
大数据系列修炼-Scala课程23核心内容: 1、scala中高阶函数代码实例 2、高阶函数代码实战详解1、scala中函数的相关概念1>函数是scala中的一等公民,所以函数可以保存在其它变量中,函数可以像普通的变量或者常量一样作为参数传递给我们的函数 2>在scala中,你无法直接操纵方法,而只能直接操纵函数,对于函数可以做两件事情:1调用 2传递 3>在scala中,若要让编译器识别出原创 2016-09-12 18:15:46 · 877 阅读 · 0 评论 -
大数据系列修炼-Scala课程24(1)
大数据系列修炼-Scala课程24(1)核心内容: 1、Java中的匿名类1、Java中匿名类的概念、访问范围1>匿名类是一种特殊的内部类 2>如果在一个方法的内部类定义了一个匿名类,则该匿名类可以访问: (1)外部类的所有成员(试用一切内部类) (2)包裹该匿名类的方法中的所有final类型的局部变量,其中非final类型的局部变量无法被匿名类访问实例程序:public class App原创 2016-09-13 14:14:23 · 702 阅读 · 0 评论 -
大数据系列修炼-Scala课程24(2)
大数据系列修炼-Scala课程24(2)核心内容: 1、scala中的SAM转换机制1、Scala中SAM的概念、SAM的执行方式1>在scala中,要某个函数做某件事时,会传一个函数参数给它。而在Java中,并不支持传送函数作为参数。通常Java的实现方式是将 动作放在一个实现某接口的类中,然后将该类的一个实例传递给另一个方法。很多时候,这些接口只有单个 抽象方法(Single abstra原创 2016-09-13 14:15:08 · 820 阅读 · 0 评论 -
大数据系列修炼-Scala课程25
大数据系列修炼-Scala课程25核心内容: 1、scala中的柯里化实战解析1、scala中的柯里化实战解析1>scala中的柯里化指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程.新的函数返回一个 以原有第二个参数作为参数的函数. 2>柯里化可以理解为一个函数可以拥有多个形参列表实例程序:object App { def main(args:Array[String]原创 2016-09-14 10:49:13 · 650 阅读 · 0 评论 -
大数据系列修炼-Scala课程26
大数据系列修炼-Scala课程26核心内容: 1、scala中模式匹配分析 2、在模式匹配中使用守卫 3、模式匹配中的变量使用1、scala中模式匹配与C、Java中的模式匹配的区别1>在C、Java语言中,在switch的用法当中,先找到程序的入口,一旦找到程序的入口,case将被屏蔽,整个程序将会顺序的从上向下进行执行, 所以switch本质就是半个选择项 2>在scala的模式匹配中原创 2016-09-14 11:08:14 · 768 阅读 · 0 评论 -
大数据系列修炼-Scala课程27
大数据系列修炼-Scala课程27核心内容: 1、Type模式匹配实战解析 2、Array模式匹配实战实战解析 3、List模式匹配实战解析 4、Tuple模式匹配实战解析1、scala中模式匹配在具体类型(数组类型、List、元组)中的实际应用实例程序:object App { def main(args:Array[String]):Unit= { /原创 2016-09-15 11:34:01 · 672 阅读 · 0 评论 -
大数据系列修炼-Scala课程28
大数据系列修炼-Scala课程28核心内容: 1、scala中提取器Extractor实战解析1、scala中提取器Extractor实战解析1>scala中的提取器Extractor指的是从case表达式中提取相应数值的过程 2>在match……case中,用常量可以接受到要匹配的数值,并且在=>后面可以提取出相应的数值 3>利用正则表达式可以提取出已经分组的数据实例程序:object Ap原创 2016-09-15 11:34:37 · 885 阅读 · 0 评论 -
大数据系列修炼-Scala课程29
大数据系列修炼-Scala课程29核心内容: 1、case class实战解析 2、case object实战解析 3、case class与case object在spark中的实际应用1、scala中case class与case object的相关概念1、scala中的case class与case object有两种功能:消息传递与模式匹配。case class与case object原创 2016-09-16 13:27:35 · 756 阅读 · 0 评论 -
大数据系列修炼-Scala课程30
大数据系列修炼-Scala课程30核心内容: 1、模式匹配高级实战:嵌套的case class1、模式匹配高级实战:嵌套的case class1、在模式匹配中使用嵌套case class的原因: 1>因为我们的case class一般只能表述一个item,在我们进行模式匹配的过程中,当我们想表述某一类item的集合的时候,就需要 嵌套的case class 2、在模式匹配使用嵌套case c原创 2016-09-16 13:28:14 · 653 阅读 · 0 评论 -
大数据系列修炼-Scala课程31
大数据系列修炼-Scala课程31核心内容: 1、Option使用内部实战 2、Option中的sealed关键字解析1、Option使用内部实战1>在Option中有两个具体实现的子类: cass class Some:若在Option当中含有具体的数值,用Some来表示, case object None:若Option当中没有相应的数值,就用None来表示.实例程序:object Ap原创 2016-09-17 10:35:16 · 877 阅读 · 0 评论 -
大数据系列修炼-Scala课程32
大数据系列修炼-Scala课程32核心内容: 1、List的基本操作实战 2、基于模式匹配的List排序算法实现1、List的基本操作实战声明List的三种方式: 1>常见的声明方式:val data = ListInt 2>::(2个冒号)+Nil的方式:val data2 = 10::(20::30::15::Nil) 从整体结构上而言:Scala中的List其实只是由两部分构成:一原创 2016-09-17 10:35:53 · 817 阅读 · 0 评论 -
大数据系列修炼-Scala课程33
大数据系列修炼-Scala课程33核心内容: 1、List的一阶函数操作代码实战详解1、List的一阶函数操作代码实战详解所谓一阶函数就是函数的参数不是函数,而是普通的变量;所谓高阶函数就是函数的参数是函数,此时认为函数是高阶函数 List集合中常用的方法: 1>List中常用的方法:head、tail、:::(组拼)、isEmpty、head、last、init、reverse、take、d原创 2016-09-18 09:39:49 · 975 阅读 · 0 评论 -
大数据系列修炼-Scala课程34
大数据系列修炼-Scala课程34核心内容: 1、scala中对List进行高效的排序 2、Scala中对List进行倒排序1、Scala中对List进行高效的排序和倒排序代码实战1>List的排序方式有两种:通过相应的Scala API进行排序(速度慢),通过一定的算法进行排序(如归并排序) 2>函数的定义中为了应对各种数据类型,可以使用泛型的方式 3>借助柯里化,一个函数中可以有多个形式原创 2016-09-18 09:40:39 · 951 阅读 · 0 评论 -
大数据系列修炼-Scala课程35
大数据系列修炼-Scala课程35核心内容: 1、scala中List的map、flatMap、foreach、filter操作代码实战1、Scala中List的map、flatMap、foreach、filter操作代码实战1>map就是对集合中的所有元素执行一个具体的函数,将函数作用在数值上,并返回一个新的集合结果 2>flatMap:首先对List内部的每个成员进行map操作,map产生的原创 2016-09-19 14:06:30 · 1395 阅读 · 0 评论 -
大数据系列修炼-Scala课程36
大数据系列修炼-Scala课程36核心内容: 1、List的partition、find、takeWhile、dropWhile、span、forall、exsists操作代码实战1、List的partition、find、takeWhile、dropWhile、span、forall、exsists操作代码实战List中常用的方法: partition:对集合中的元素按照某种条件进行分区 s原创 2016-09-19 14:07:04 · 1089 阅读 · 0 评论 -
大数据系列修炼-Scala课程37
大数据系列修炼-Scala课程37核心内容: 1、List的foldLeft、foldRight、sort操作代码实战1、List的foldLeft、foldRight、sort操作代码实战1>foldLeft:函数体执行两元素相加从左到右:即从1开始 foldRight:函数体执行两元素相减从右到左:即从3开始 2>scala中的sortWith排序算法的效率还是很高的,为线性实例程序://本原创 2016-09-20 21:14:54 · 1336 阅读 · 0 评论