avatar
文章
197
标签
94
分类
0

首页
书单
歌单
关于
LeFer
搜索
首页
书单
歌单
关于
Scala入门之三:Scala类
发表于2017-07-28
转载 Scala是一门面向对象的语言,因此它拥有很多关于“类”的描述。本文简单介绍了Scala类的一些特点。 本文源自Michel Schinz和Philipp Haller所写的A Scala Tutorial for Java programmers,由Bearice成中文。第一篇为Scala简单做了一下入门,文。第二篇描述Scala对象。在这一部分中,将对Scala类进行一些介绍。 **5 Scala类 ** 正如我们所见,Scala是一门面向对象的语言,因此它拥有很多关于“类”的描述 。Scala类使用和Java类似的语法进行定义。但是一个重要的不同点在于Scala中的类可以拥有参数,这样就可以得出我们下面关于对复数类(Complex)的定义: class Complex(real: Double, imaginary: Double) { def re() = real def im() = imaginary} 我们的复数类(Complex)接受两个参数:实部和虚部。这些参数必须在实例化时进行传递,就像这样:new Comple ...
Scala入门之二:万物皆对象,介绍Scala对象
发表于2017-07-28
转载 本文源自Michel Schinz和Philipp Haller所写的A Scala Tutorial for Java programmers,由Bearice成中文。之前一篇为Scala简单做了一下入门,这一篇描述Scala对象。在Scala中,一切都是对象,所以数字和函数都是Scala对象。 4 Scala:万物皆对象 Scala作为一个纯面向对象的语言,于是在Scala中万物皆对象,包括数字和函数。在这方面,Scala于Java存在很大不同:Java区分原生类型(比如boolean和int)和引用类型,并且不能把函数当初变量操纵。 4.1 数字和对象 由于数字本身就是对象,所以他们也有方法。事实上我们平时使用的算数表达式(如下例) > 1 + 2 * 3 / x 是由方法调用组成的。它等效于下面的表达式,我们在上一节见过这个描述。 > (1).+(((2).*(3))./(x)) 这也意味着 +,-,*,/ 在Scala中也是有效的名称。 在第二个表达式中的这些括号是必须的,因为Scala的分词器使用最长规则来进行分词。所以他会把下面的表达式 ...
Scala入门之五:Trait
发表于2017-07-28
转载 本文介绍了Scala的Trait。除了从父类集成代码外,Scala中的类还允许从一个或者多个traits中导入代码。 对于Java程序员来说理解traits的最好方法就是把他们当作可以包含代码的接口。 本文源自Michel Schinz和Philipp Haller所写的A Scala Tutorial for Java programmers,由Bearice成中文。第一篇为Scala简单做了一下入门,第二篇描述Scala对象,第三篇对Scala类做了一些介绍。第四篇介绍了Scala的模式匹配。下面这部分介绍Scala的Trait,直译过来就是特性/特征的意思。 7 Scala Trait 除了从父类集成代码外,Scala中的类还允许从一个或者多个traits中导入代码。 对于Java程序员来说理解traits的最好方法就是把他们当作可以包含代码的接口(interface)。在Scala中,当一个类继承一个trait时,它就实现了这个trait的接口,同时还从这个trait中继承了所有的代码。 让我们通过一个典型的实例来看看这种trait机制是如何发挥作用的:排序 ...
Scala入门之六:泛型
发表于2017-07-28
转载 本文介绍了Scala的Trait。除了从父类集成代码外,Scala中的类还允许从一个或者多个traits中导入代码。 对于Java程序员来说理解traits的最好方法就是把他们当作可以包含代码的接口。 本文源自Michel Schinz和Philipp Haller所写的A Scala Tutorial for Java programmers,由Bearice成中文。第一篇为Scala简单做了一下入门,第二篇描述Scala对象,第三篇对Scala类做了一些介绍。第四篇介绍了Scala的模式匹配,第五篇则介绍Scala的Trait。下面是最后一部分,讲述Scala的泛型。Scala的泛型是Scala最大的优势之一。 8 Scala的泛型 我们在这文章将要学习Scala的最后一个特性是泛型。Java程序员们可能最近才知道这个东西,因为这个特性是在Java1.5中才被加入的。 泛型是一种可以让你使用类型参数的设施。例如当一个程序员正在实现一个链表时,将不得不面对诸如如何决定链表中节点保存数据的类型之类的问题。正由于这是一个链表,所以往往会在不同的环境中使用,因此,我们不能草率的决 ...
Scala入门之四:模式匹配和条件类
发表于2017-07-28
本文介绍了Scala的模式匹配。模式匹配的基本思想就是试图对一个值进行多种模式的匹配,并且在匹配的同时将匹配值拆分成若干子项,最后对匹配值与其子项执行某些代码。 本文源自Michel Schinz和Philipp Haller所写的A Scala Tutorial for Java programmers,由Bearice成中文。第一篇为Scala简单做了一下入门,第二篇描述Scala对象,第三篇对Scala类做了一些介绍。这一篇将介绍Scala中的一个重要特性:Scala的模式匹配。 6 Scala的模式匹配和条件类 树是在程序中常用的一个数据结构。例如编译器和解析器常常吧程序表示为树;XML文档结构也是树状的;还有一些集合是基于树的,例如红黑树。 接下来我们将通过一个计算器程序来研究树在Scala中是如何表示和操纵的。这个程序的目标是处理一些由整数常量、变量和加号组成的简单的算数表达式,例如1 + 2 和 (x + x ) + (7 + y )。 我们首先要决定如何表示这些表达式。最自然的方法就是树了,树的节点表示操作符(在这里只有加法),而树的叶节点表示值(这里表示常数和变量 ...
Spark实践笔记1:环境准备
发表于2017-07-28
ubuntu server镜像,ParallelsDesktop下快速安装。采用12.04 server 32位版本,手动安装,使用英文语言,时区选中国,预装服务选了 openssh 修改root用户密码,启用root账户:sudo passwd root 。此后使用root用户操作。 设置静态IP:vim /etc/network/interfaces root@ubuntu1:~# more /etc/network/interfaces# This file describes the network interfaces available on your system# and how to activate them. For more information, see interfaces(5).# The loopback network interfaceauto loiface lo inet loopback# The primary network interfaceauto eth0#iface eth0 inet d ...
Spark实践笔记2:Hadoop安装
发表于2017-07-28
Hadoop下载:我选择了hadoop2.7.0 将hadoop-2.7.0.tar 上传到ubuntu1里去,并将hadoop解压到/usr/local/hadoop mkdir /usr/local/hadooptar xvf hadoop-2.7.0.tar -C /usr/local/hadoop/ 修改 ~/.bashrc 文件,增加环境变量: export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.0export PATH=${JAVA_HOME}/bin:${HADOOP_HOME}/bin:$PATH 导入配置使其生效:source ~/.bashrc 创建必要的目录 mkdir ${HADOOP_HOME}/dfsmkdir ${HADOOP_HOME}/tmpmkdir ${HADOOP_HOME}/dfs/datamkdir ${HADOOP_HOME& ...
Spark实践笔记3:Spark集群搭建
发表于2017-07-28
scala的安装 下载安装包:我选择2.11.6版本 上传到ubuntu1中并解压,配置环境变量,增加SCALA_HOME,并在PATH里增加对应BIN tar xvf scala-2.11.6.tar -C /usr/localcd /usr/localmv scala-2.11.6 scalavim ~/.bashrcexport SCALA_HOME=/usr/local/scalapath里增加 $ {SCALA_HOME} /binsource ~/.bashrc 把scala拷贝到其他两台机器,并配置环境变量 scp -r scala ubuntu2:/usr/localscp -r scala ubuntu3:/usr/local 验证scala安装成功 scala -version spark安装 下载安装包:我选择1.3.1版本 上传到ubuntu1中并解压,配置环境变量,增加SPARK_HOME,并在PATH里增加对应BIN。使用source命令使配置生效 tar xzvf spark-1.3.1-bin-hadoo ...
Spark实践笔记4:用Spark-shell做交互式分析
发表于2017-07-28
首先在MASTER机器上启动hadoop及spark;把位于${SPARK_HOME}下的README.md文件put到HDFS/data目录下;启动spark-shell,启动spark-shell时需要指定MASTER机器,否则执行后续命令会报错:${SPARK_HOME}/bin/spark-shell –master spark://ubuntu1:7077scala> val textFile = sc.textFile(“/data/README.md”)textFile.count()textFile.first()能看到,程序正常执行,而且执行第二个命令first的速度比第一个命令count要快很多。通过Spark-shell的web能看到任务信息。 个人理解:val定义了一个RDD(弹性分布式数据集)textFile。RDD拥有自己的一些actions,如count、first、take、countByKey、reduce等,可以直接调用。RDD还有一种操作类型叫 transfo ...
Spring Boot过滤返回的数据
发表于2017-07-28
考虑这样的场景:对于同一个Model类,在不同的api中需要返回不同的字段。该如何优雅的实现呢? 解决方案采用JsonView,根据定义自动实现字段的过滤。 具体方法 创建一个view类,声明一个summary接口,summary接口继承summary用来演示扩展 public class View { public interface Summary {} public interface Summary2 extends Summary{}} 在model上使用注解,定义view中需要呈现的列 public class Article { @JsonView(View.Summary.class) private String id; @JsonView(View.Summary2.class) private String title; private String content; // 省略getter setter} 通常在RESTfu ...
1…161718…20
avatar
LeFer
日拱一卒,功不唐捐
文章
197
标签
94
分类
0
公告
不见五陵豪杰墓,无花无酒锄作田!
最新文章
全球智能危机(第二部分:一场来自未来的金融史思想实验)2026-02-26
全球智能危机(第一部分:Agentic AI的兴起)2026-02-25
技术组织重构——基于 Multi-Agent 的研发新范式2026-02-16
警惕!AI时代的马车误区2026-02-08
代码之外:AI浪潮下,开发者的“变”与“不变”2026-02-06
最新评论
正在加载中...
标签
spring boot starter spring cloud jib ocr 软件工程 cdh ibus spring security spring modulith sse vmware websocket jointjs vscode mysql docker 架构 gitbook 可信数据空间 postgresql gitlab 项目 机器学习 disruptor 干货 xfce DDD emby nodejs spring boot mdm webservice 数据仓库 nas drools ubuntu AI 常识 pdf his
网站资讯
文章数目 :
197
已运行时间 :
本站总字数 :
180.7k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2015 - 2026 By LeFer
沪ICP备2024075747号沪公网安备31011502401302号
搜索
数据库加载中