Scala
love666666shen
Golang、Python、Java、Scala学习者,对Golang、大数据领域、深度学习等方面的知识比较感兴趣,志同道合的博友可以多多交流、相互学习、每天进步一点点!!!
展开
-
《快学Scala》第10章——特质 学习笔记
一个类扩展自一个或多个特质,以便使用这些特质提供的服务。特质可能会要求使用它的类支持某个特定的特性。不过,和Java接口不同,Scala特质可以给出这些特性的缺省实现。因此,与接口相比,特质要有用得多。 本章要点概述类可以实现任意数量的特质。特质可以要求实现它们的类具备特定的字段、方法或超类。和Java接口不同,Scala特质可以提供方法和字段的实现。将多个特质叠加在一起时,顺序很重原创 2018-01-20 22:34:49 · 329 阅读 · 0 评论 -
《快学Scala》第8章——继承 学习笔记
第8章 继承本章要点概览:extends、final关键字和Java中相同。重写方法时必须用override。只有主构造器可以调用超类的主构造器。可以重写字段。特质是将Java接口变得更为通用的Scala概念。8.1 扩展类Scala扩展类的方式和Java一样——使用exte原创 2018-01-19 17:39:19 · 275 阅读 · 0 评论 -
《快学Scala》第六章——对象 学习笔记
本章要点概览:用对象作为单例或存放工具方法。类可以拥有一个同名的伴生对象。对象可以扩展类或特质。对象的apply方法通常用来构造伴生类的新实例。如果不想显示定义main方法,可以用扩展App特质的对象。可以通过扩展Enumeration对象来实现枚举。6.1 单例对象Scala没有静态方法或静态字段,可以用object这个语法结构来达到同样的目的。对象定义了某个类的单个实例,包含想要的特质。例如:原创 2018-01-18 21:31:00 · 320 阅读 · 0 评论 -
《快学Scala》第七章——包和引入 学习笔记
本章要点概览:包也可以像内部类那样嵌套。包路径不是绝对路径。包声明链x.y.z并不自动将中间包x和x.y变成可见。位于文件顶部不带花括号的包声明在整个文件范围内有效。包对象可以持有函数和变量。引入语句可以引入包、类和对象。引入语句可以出现在任何位置。引入语句可以重命名和隐藏特定成员。java.lang、scala和Predef总是被引入。7.1 包Scala的包和Java中的包或者C++中的命名空原创 2018-01-19 11:11:53 · 539 阅读 · 0 评论 -
Scala学习之——变量、函数、方法及两者联系
最近刚开始学习Scala,常被其“古怪”的语法、丰富的操作符、各式的函数操作方法、灵活的使用方式多雷到。这不刚开始,还没有入门就被其变量搞得有点迷糊了。在这里特意,写下这篇笔记,以作提醒铭记。1 变量Scala中,有两种类型的变量——val类型和var类型。1.1 类型定义在Java中,变量类型写在名称之前;而在Scala中,变量类型写在其名称之后,重甲使用英文冒号:分隔。原创 2018-01-27 21:06:40 · 7947 阅读 · 0 评论 -
《快学Scala》第17章 类型参数学习笔记
第17章 类型参数在Scala中,可以使用类型参数实现类和函数,这样的类和函数可以用于多种类型。如,Array[T]可以存放任意类型T的元素。有时,需要对类型做出限制。例如,要对元素排序,T必须提供一定的顺序定义。本章要点概览:类、特质、方法和函数都可以有类型参数。将类型参数放置在名称之后,以方括号括起来。类型界定的语法为T: LowerBound、 T可以使用类型约束来约原创 2018-01-25 19:09:00 · 361 阅读 · 0 评论 -
《快学Scala》第14章——模式匹配和样例类 学习笔记
Scala有一个十分强大的模式匹配机制,可以应用在很多场合:switch语句、类型查询,以及“析构”(获取复杂表达式中的不同部分)。除此之外,Scala还提供了样例类,对模式匹配进行了优化。 本章要点概述:match表达式是一个更好的switch,不会有意外掉入到下一个分支的问题。如果没有模式能够匹配,会抛出MatchError。可以用case _模式避免。模式可以包含一个随意定义的条原创 2018-01-23 22:31:23 · 377 阅读 · 0 评论 -
Scala学习之——Option、Iterator
1. Option(选项)Scala Option(选项)类型用来表示一个值是可选的(有值或无值)。Option[T] 是一个类型为 T 的可选值的容器: 如果值存在, Option[T] 就是一个 Some[T] ,如果不存在, Option[T] 就是对象 None 。1.1 get方法在映射中有一个get方法,其返回值要么是None,要么是Some[T],其中T表示返回的关键原创 2018-01-30 15:57:17 · 1713 阅读 · 0 评论 -
《快学Scala》第13章——集合 学习笔记
13.1 主要的集合特质 关于集合的分类:Seq、Set、Map及其比较,可以参考博客:http://blog.csdn.net/bluishglc/article/details/51085917 Iterable指的是那些能生成用来访问集合中所有元素的Iterator 的集合:val coll = ... //某种Iterableval iter = coll.iteratorwhil原创 2018-01-22 22:28:39 · 320 阅读 · 0 评论 -
《快学Scala》第12章——高阶函数 学习笔记
Scala混合了面向对象和函数式的特性。在函数式编程语言中,函数时“头等公民”,可以像任何其他类型一样被传递和操作;只需要将明细动作包含在函数当中作为参数传入即可。 本章要点概述:在Scala中函数时“头等公民”,就和数字一样。可以创建匿名函数,通常还会把它们交给其他函数。函数参数可以给出需要稍后执行的行为。许多集合方法都接受函数参数,将函数应用到集合中的值里面。有许多语法上的简写原创 2018-01-21 22:31:09 · 268 阅读 · 0 评论 -
《快学Scala》第11章——操作符 学习笔记
操作符通常用来构建领域特定语言——内嵌在Scala中的迷你语言。隐式转换(自动被应用的类型转换)是另一个在创建领域特定语言时用到的工具。 本章要点概览:标识符由字母、数字或运算符构成。一元和二元操作符其实是方法调用。操作符优先级取决于第一个字符,而结合性取决于最后一个字符。apply和update方法在对expr(args)表达式求值时被调用。提取器从输入中提取元组或值的序列。原创 2018-01-21 21:39:55 · 306 阅读 · 0 评论 -
SparkContext、SparkConf和SparkSession之间的联系及其初始化
1 SparkConf和SparkContext1.1 启动spark-shell每个Spark应用程序都需要一个Spark环境,这是Spark RDD API的主要入口点。Spark Shell提供了一个名为“sc”的预配置Spark环境和一个名为“spark”的预配置Spark会话。使用spark-shell启动交互式命令的过程如下: 进入spark的安装目录,转到bin目录下,启动命令./s原创 2018-02-05 17:57:02 · 57771 阅读 · 4 评论