Scala
文章平均质量分 83
zhouzhihubeyond
大数据技术爱好者,主要关注Spark、Hadoop、Storm、Hive、HBase等开源大数据技术,专注于大数据机器学习算法研究
展开
-
Scala入门到精通——第十二节 I/O与正则表达式
本节主要内容Scala I/O操作简介Scala 写文件Scala 读文件Scala 网络I/O正则表达式简介Scala正则表达式实战1. Scala I/O操作简介I/O操作是一门编程语言中的重要内容,在Scala中,它更多的是调用java中的I/O类或者通过对java中的I/O类进行相应的封装来实现I/O操作。在上一节内容中我们已经用到了I/O操作:trait FileLogger原创 2015-07-26 16:28:52 · 18180 阅读 · 5 评论 -
Scala入门到精通——第十七节 类型参数(一)
本节主要内容类型变量界定(Type Variable Bound)视图界定(View Bound)上界(Upper Bound)与下界(Lower Bound)1. 类型变量界定(Type Variable Bound)类型变量界定是指在泛型的基础上,对泛型的范围进行进一步的界定,从而缩下泛型的具体范围,例如://下面的类编译通不过//因为泛型T在编译的时候不能确定其具体类型//即并不原创 2015-08-03 22:27:08 · 15169 阅读 · 7 评论 -
Scala入门到精通——第三十节 Scala脚本编程与结束语
本节主要内容REPL命令行高级使用使用Scala进行Linux脚本编程结束语1. REPL命令行高级使用在使用REPL命令行时,有时候我们需要粘贴的代码比较大,而普通的粘贴可能会些一些问题,比如中文粘贴会出现乱码、多行代码粘贴时会出错,此时需要用到REPL的高级功能。在日常开发过程中,我们粘贴多行代码的时候会遇到下列问题://本意是要粘贴下面两行代码class Person(val nam原创 2015-08-17 16:40:43 · 16022 阅读 · 3 评论 -
Scala入门到精通——第一节 Scala语言初步
本节主要内容Scala简介为什么要学习ScalaScala语言初步1. Scala简介Scala(Scala Language的简称)语言是一种能够运行于JVM和.Net平台之上的通用编程语言,既可用于大规模应用程序开发,也可用于脚本编程,它由由Martin Odersk于2001开发,2004年开始程序运行在JVM与.Net平台之上,由于其简洁、优雅、类型安全的编程模式而受到原创 2015-08-18 09:35:19 · 53536 阅读 · 2 评论 -
Scala书籍推荐
现有的Scala书箱包括:Programming In Scala。Scala创建者Martin Ordersky等的大作,是最权威的Scala入门书箱,不过书中讲解的Scala版本有点老,这本书整体给我的感觉还可以,只是有些例子举得感觉不适合初学者。这部大作有中文版,但翻译得真实太烂,ZTMD烂。Scala In Action. 一般来讲,In Action系列的书都还可以,这本书整体也还不错原创 2015-08-19 12:33:07 · 25452 阅读 · 7 评论 -
Scala入门到精通——第十八节 隐式转换与隐式参数(一)
本节主要内容隐式转换简介隐式转换函数隐式转换规则隐式参数1. 隐式转换简介在scala语言当中,隐式转换是一项强大的程序语言功能,它不仅能够简化程序设计,也能够使程序具有很强的灵活性。要想更进一步地掌握scala语言,了解其隐式转换的作用与原理是很有必要的,否则很难得以应手地处理日常开发中的问题。在scala语言中,隐式转换是无处不在的,只不过scala语言为我们隐藏了相应的细节,例如sc原创 2015-08-05 21:09:03 · 15736 阅读 · 5 评论 -
Scala入门到精通——第十九节 隐式转换与隐式参数(二)
作者:摇摆少年梦 配套视频地址:http://www.xuetuwuyou.com/course/12本节主要内容隐式参数中的隐式转换函数中隐式参数使用概要隐式转换问题梳理1. 隐式参数中的隐式转换前一讲中,我们提到函数中如果存在隐式参数,在使用该函数的时候如果不给定对应的参数,则编译器会自动帮我们搜索相应的隐式值,并将该隐式值作为函数的参数,这里面其实没有涉及到隐式转换,本节将演示如何利原创 2015-08-07 11:04:47 · 14409 阅读 · 5 评论 -
Akka书箱推荐
话不多说,推荐下面几本书: 1. Akka Essentials, By Munish K. Gupta, Publisher: Packt Publishing,Release Date: October 2012。非常适合入门级,图文并茂,看完能够明白AKKA的大部分精髓 2. Effective Akka,By Jamie Allen,Publisher: O’Reilly Media,R原创 2015-11-09 23:24:22 · 10246 阅读 · 4 评论 -
Intellij IDEA 14.1.4 Scala开发环境搭建
主要内容Intellij IDEA开发环境简介Intellij IDEA Scala开发环境搭建Intellij IDEA Spark开发环境搭建Intellij IDEA常见问题及解决方案Intellij IDEA常用快捷键1. Intellij IDEA开发环境简介具体介绍请参见:http://baike.baidu.com/link?url=SBY93H3SPkmcmIOmZ8H6原创 2015-10-29 23:10:25 · 72284 阅读 · 7 评论 -
Scala入门到精通——第十三节 高阶函数
本节主要内容高阶函数简介Scala中的常用高阶函数SAM转换函数柯里化偏函数1. 高阶函数简介高阶函数主要有两种:一种是将一个函数当做另外一个函数的参数(即函数参数);另外一种是返回值是函数的函数。这两种在本教程的第五节 函数与闭包中已经有所涉及,这里简单地回顾一下: (1)函数参数//函数参数,即传入另一个函数的参数是函数//((Int)=>String)=>原创 2015-07-28 09:25:48 · 21538 阅读 · 6 评论 -
Scala入门到精通——第九节 继承与组合
主要内容类的继承构造函数执行顺序方法重写匿名类多态与动态绑定组合与继承的使用1 类的继承下类的代码演示了scala类的继承//Person类class Person(name:String,age:Int){ println("Constructing Person")}//Student继承Person类class Student(name:S原创 2015-07-25 19:55:48 · 14834 阅读 · 3 评论 -
Akka并发编程——第四节:Actor模型(三)
本将主要内容: 1. Actor引用、Actor路径1. Actor引用、Actor路径下图是Akka官方文档中给出的一张图该图清晰地说明了ActorPath,ActorRef,Actor及ActorSystem之间的关系,并说明了Actor整体的层次结构。前面我们提到,Akka应用程序会持有一个名称为user的Actor,该Actor被称为guardian supervisor(守卫监督器),无原创 2016-04-02 21:24:10 · 9985 阅读 · 1 评论 -
Akka并发编程——第三节:Actor模型(二)
本节主要内容:Actor API解析1. Actor API解析Actor中的主要成员变量和方法定义如下:package akka.actortrait Actor extends scala.AnyRef { type Receive = akka.actor.Actor.Receive //context变量暴露当前Actor的上下文信息及当前消息 implicit val co原创 2016-04-02 19:26:29 · 7108 阅读 · 0 评论 -
Akka并发编程——第二节:Actor模型(一)
本节主要内容定义Actor创建Actor1. 定义Actor通过扩展akka.actor.Actor 特质并实现receive方法来定义Actor,代码示例如下//通过扩展Actor并实现receive方法来定义Actorclass MyActor extends Actor { //获取LoggingAdapter,用于日志输出 val log = Logging(cont原创 2016-04-02 15:19:00 · 10168 阅读 · 0 评论 -
Akka并发编程——第五节:Actor模型(四)
本节主要内容: 1. 停止Actor1. 停止Actor(1)通过ActorSystem.shutdown方法停止所有 Actor的运行/**停止Actor:ActorSystem.shutdown方法*/object Example_10 extends App{ import akka.actor.Actor import akka.actor.ActorSystem imp原创 2016-04-02 22:24:01 · 5940 阅读 · 1 评论 -
Scala入门到精通——第二十节 类型参数(二)
本节主要内容上下文界定(Context Bound)多重界定类型约束型变1. 上下文界定在第十七节中的类型参数(一)中,我们提到视图界定可以跨越类继承层次结构,其后面的原理是隐式转换。本节要介绍的上下文界定采用隐式值来实现,上下文界定的类型参数形式为T:M的形式,其中M是一个泛型,这种形式要求存在一个M[T]类型的隐式值:case class Person(val name:String)原创 2015-08-08 17:02:01 · 18267 阅读 · 6 评论 -
Akka并发编程——第六节:Actor模型(五)
本将主要内容: 1. !消息发送,Fire-and-Forget消息模型 2. ?消息发送,Send-And-Receive-Future消息模型Akka提供了两种消息模型:fire-and-forget和Send-And-Receive-Future。fire-and-forget是一种单向消息发送模型,指的是异步发送消息,通过异步发送消息且消息发送后可以立即返回,Akka中使用?方法进行fi原创 2016-06-03 23:17:48 · 21068 阅读 · 0 评论 -
Scala入门到精通——第十六节 泛型与注解
本节主要内容泛型(Generic Type)简介注解(Annotation)简介注解常用场景1. 泛型(Generic Type)简介泛型用于指定方法或类可以接受任意类型参数,参数在实际使用时才被确定,泛型可以有效地增强程序的适用性,使用泛型可以使得类或方法具有更强的通用性。泛型的典型应用场景是集合及集中中的方法参数,可以说同java一样,scala中泛型无处不在,具体可以查看scala的a原创 2015-08-04 20:23:21 · 16569 阅读 · 3 评论 -
Scala入门到精通——第二十九节 Scala数据库编程
本节主要内容Scala Maven工程的创建Scala JDBC方式访问MySQLSlick简介Slick数据库编程实战SQL与Slick相互转换本课程在多数内容是在官方教程上修改而来的,官方给的例子是H2数据库上的,经过本人改造,用在MySQL数据库上,官方教程地址:http://slick.typesafe.com/doc/2.1.0/sql-to-slick.html1. Scal原创 2015-08-17 14:36:06 · 16747 阅读 · 4 评论 -
Scala入门到精通——第十一节 Trait进阶
本节主要内容trait构造顺序trait与类的比较提前定义与懒加载trait扩展类self type1 trait构造顺序在前一讲当中我们提到,对于不存在具体实现及字段的trait,它最终生成的字节码文件反编译后是等同于java中的接口,而对于存在具体实现及字段的trait,其字节码文件反编译后得到的java中的抽象类,它有着scala语言自己的实现方式。因此,对于trait它也有自己的原创 2015-07-26 11:04:10 · 16107 阅读 · 3 评论 -
Scala入门到精通——第二十一节 类型参数(三)-协变与逆变
本节主要内容协变逆变类型通匹符1. 协变协变定义形式如:trait List[+T] {} 。当类型S是类型A的子类型时,则List[S]也可以认为是List[A}的子类型,即List[S]可以泛化为List[A]。也就是被参数化类型的泛化方向与参数类型的方向是一致的,所以称为协变(covariance)。 为方便大家理解,我们先分析java语言中为什么不存在协变及下一原创 2015-08-09 16:14:55 · 15759 阅读 · 8 评论 -
Scala入门到精通——第二十二节 高级类型 (一)
本节主要内容this.type使用类型投影结构类型复合类型1. this.type使用class Person{ private var name:String=null private var age:Int=0 def setName(name:String)={ this.name=name //返回对象本身 this } def setAg原创 2015-08-10 20:16:07 · 14399 阅读 · 1 评论 -
Scala入门到精通——第二十三节 高级类型 (二)
本节主要内容中置类型(Infix Type)存在类型函数类型抽象类型关于语法糖的问题,在讲解程序语言时,我们常常听到“语法糖”这个术语,在百度百科中,它具有如下定义:语法糖(Syntactic Sugar),也叫糖衣语法,是英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语。指的是,在计算机语言中添加某种语法,这种语法能使程序员更方便的使用语原创 2015-08-11 19:50:13 · 12393 阅读 · 4 评论 -
Scala入门到精通—— 第二节Scala基本类型及操作、程序控制结构
本节主要内容Scala基本类型基本类型操作Scala程序控制结构Scala基本类型Scala中的基本数据类型如下图: (来源:Programming in Scala)从上表中可以看出,Scala的基本数据类型与Java中的基本数据类型是一一对应的,不同的是Scala的基本数据类型头字母必须大写,本节以Int、Long、String、Char、Double及Float类型为例介绍Sca原创 2015-07-19 11:18:26 · 30412 阅读 · 6 评论 -
Scala入门到精通——第十节 Scala类层次结构、Traits初步
本节主要内容Scala类层次结构总览Scala中原生类型的实现方式解析Nothing、Null类型解析Traits简介Traits几种不同使用方式1 Scala类层次结构Scala中的类层次结构图如下: 来源:Programming in Scala从上面的类层次结构图中可以看到,处于继承层次最顶层的是Any类,它是scala继承的根类,scala中所有的类都是它的子类 Any类中定原创 2015-07-25 22:39:22 · 16538 阅读 · 3 评论 -
Scala入门到精通——第三节 Array、List
本节主要内容数组操作实战列表List操作实战数组操作实战1 定长数组//定义一个长度为10的数值数组scala> val numberArray=new Array[Int](10)numberArray: Array[Int] = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)//定义一个长度为10的String类型数组scala> val strArray=原创 2015-07-20 09:05:14 · 48620 阅读 · 5 评论 -
Scala入门到精通——第十五节 Case Class与模式匹配(二)
本节主要内容模式匹配的类型for控制结构中的模式匹配option类型模式匹配1. 模式的类型1 常量模式object ConstantPattern{ def main(args: Array[String]): Unit = { //注意,下面定义的是一个函数 //函数的返回值利用的是模式匹配后的结果作为其返回值 //还需要注意的是函数定义在main方法中原创 2015-08-01 21:43:30 · 14913 阅读 · 4 评论 -
Scala入门到精通——第二十四节 高级类型 (三)
作者:摆摆少年梦 视频地址:http://blog.csdn.net/wsscy2004/article/details/38440247本节主要内容Type SpecializationManifest、TypeTag、ClassTagScala类型系统总结在scala中,类(class)与类型(type)是两个不一样的概念。我们知道类是对同一类型数据的抽象,而类型则更具体。比如定义cl原创 2015-08-13 12:19:23 · 14854 阅读 · 1 评论 -
Scala入门到精通——第八节 包和引入
本节主要内容包的作用与定义包的作用域与引入(import)的使用方法 包的访问控制包对象隐式引入包的作用与定义同java中的包、C++中的命名空间一样,Scala中的包主要用于大型工程代码的组织同时也解决命名冲突的问题。Scala中的包与java有着诸多的相似之处,但Scala语言中的包更加灵活。//将代码组织到cn.scala.xtwy包中package cn.sc原创 2015-07-23 20:47:59 · 14387 阅读 · 1 评论 -
Scala入门到精通——第十四节 Case Class与模式匹配(一)
本节主要内容模式匹配入门Case Class简介Case Class应用实战1. 模式匹配入门在java语言中存在着switch语句,例如://下面的代码演示了java中switch语句的使用public class SwitchDemo { public static void main(String[] args) { for(int原创 2015-08-01 16:11:47 · 36155 阅读 · 4 评论 -
Scala入门到精通——第二十六节 Scala并发编程基础
本节主要内容Scala并发编程简介Scala Actor并发编程模型react模型Actor的几种状态Actor深入使用解析1. Scala并发编程简介2003 年,Herb Sutter 在他的文章 “The Free Lunch Is Over” 中揭露了行业中最不可告人的一个小秘密,他明确论证了处理器在速度上的发展已经走到了尽头,并且将由全新的单芯片上的并行 “内核”(虚拟 CPU原创 2015-08-15 14:12:15 · 18127 阅读 · 3 评论 -
Scala入门到精通——第二十五节 提取器(Extractor)
作者:摇摆少年梦 视频地址:http://www.xuetuwuyou.com/course/12本节主要内容apply与unapply方法零变量或变量的模式匹配提取器与序列模式scala中的占位符使用总结1. apply与unapply方法apply方法我们已经非常熟悉了,它帮助我们无需new操作就可以创建对象,而unapply方法则用于析构出对象,在模式匹配中特别提到,如果一个类要能原创 2015-08-15 06:38:33 · 14206 阅读 · 2 评论 -
Scala入门到精通——第二十七节 Scala操纵XML
本节主要内容XML 字面量XML内容提取XML对象序列化及反序列化XML文件读取与保存XML模式匹配1. XML 字面量XML是一种非常重要的半结构化数据表示方式,目前大量的应用依赖于XML,这些应用或利用XML作为数据交换格式,或利用XML进行文件配置等。像JAVA、C++及其它流行的程序开发语言都是依赖于第三方库来实现XML的操作,例如JAVA经常通过JDOM,DOM4J等XML处理原创 2015-08-15 21:10:10 · 14167 阅读 · 0 评论 -
Scala入门到精通——第二十八节 Scala与JAVA互操作
本节主要内容 1. JAVA中调用Scala类 2. Scala中调用JAVA类 3. Scala类型参数与JAVA泛型操作 4. Scala与Java间的异常处理原创 2015-08-16 19:54:24 · 28281 阅读 · 0 评论 -
《Scala开发快速入门》书籍出版
Apache Spark、Apache Kafka等基于Scala语言实现的框架在大数据生态圈内占有举足轻重的地位,它们一定程度上引领着大数据最前沿技术方向,另外Akka、Apache Gearpump等基于Scala语言实现的框架在大数据生态圈内也备受关注,工业实践已经证明了Scala语言的强大,这使Scala语言近一两年名声大噪,进而引起众多编程语言爱好者及各大公司的亲睐,国内外也因此掀起了一场原创 2016-09-08 23:41:16 · 25310 阅读 · 5 评论