13. Scala函数式编程(高级部分)
13.1 偏函数(partial function)
13.1.1 需求 -> 思考
一个集合val list = List(1,2,3,4,"abc"),完成如下要求
1) 将集合list中的所有数字+1,并返回一个新的集合
...[2019/5/20]
12. Scala模式匹配
12.1 match
12.1.1 基本介绍
Scala中的模式匹配类似于Java中的switch语法,但是更加强大
模式匹配语法中,采用match关键字声明,每个分支采用case关键字进行声明,当需要匹配时,会从第一个case分支开始,...[2019/5/17]
11. Scala数据结构(下)-集合操作
11.1 集合元素的映射-map映射操作
11.1.1 看一个实际需求
要求:请将List(3,5,8)中所有的元素都*2,将其结果放到一个新的集合中返回,即返回一个新的List(6,10,16),请编写程序实现
11.1.2 map映射操作
...[2019/5/15]
10. Scala数据结构(上)-集合操作
10.1 数据结构特点
10.1.1 Scala集合基本介绍
uml => 统一建模语言
1) Scala同时支持不可变集合和可变集合,不可变集合可以安全的并发访问
两个主要的包
不可变集合:scal...[2019/5/10]
9. Scala隐式转换和隐式值9. Scala隐式转换和隐式值
9.1 隐式转换
9.1.1 提出问题
先看一个案例演示,引出隐式转换的实际需要=>指定某些数据类型的相互转化
object boke_demo01 {
def main(args: Array[String]): Unit = {
val...[2019/5/8]
8. Scala面向对象编程(高级部分)8. Scala面向对象编程(高级部分)
8.1 静态属性和静态方法
8.1.1 静态属性-提出问题
有一群小孩在玩堆雪人,不时有新的小孩加入,请问如何知道现在共有多少人在玩?请使用面向对象的思想,编写程序解决
8.1.2 基本介绍
-Scala中静态的概念-伴生对象...[2019/5/6]
7. Scala面向对象编程(中级部分)7. Scala面向对象编程(中级部分)
7.1 包
7.1.1 看一个应用场景
现在有两个程序员共同开发一个项目,程序员xiaoming希望定义一个类取名Dog,程序员xiaohong也想定一个类也叫Dog,两个程序员还为此吵了起来,该怎么办?
--->使用包即可解决这个...[2019/5/5]
6. Scala面向对象编程(基础部分)
6.1 基本介绍
6.1.1 Scala语言是面向对象的
1) Java时面向对象的编程语言,由于历史原因,Java中海存在着非面向对象的内容:基本类型,null,静态方法等
2) Scala语言来自于Java,所以天生就是面向对象的语言,而且Sca...[2019/4/29]
2. Scala变量
2.1 变量是程序的基本组成单位
举一个简单的例子
object boke_demo01 {
def main(args: Array[String]): Unit...[2019/4/22]
Akka-CQRS(5)- CQRS Writer Actor 部署和测试
上篇我们做了一个WriterActor的例子,主要目的是示范WriterActor如何作为集群分片用persistentActor特性及event-sourcing模式实现CQRS的写功能。既然是集群分片,那么我们就在这篇讲讲WriterActor的部署和测试,因为这个里...[2019/4/8]
Akka-CQRS(4)- CQRS Writer Actor 示范
我觉着,CQRS的写部分最核心、最复杂的部分应该是Writer-Actor了。其它的监管(supervising)、分片部署等都比较规范,没太多的变动。几乎Writer-Actor所有的业务逻辑都在Receive函数里,这个地方应该算是最复杂的地方。我的想法是搭建一个标准...[2019/4/1]
Akka-CQRS(3)- 再想多点,全面点
上篇我介绍了CQRS模式存写部分的具体实现和akka-persistence一些函数和消息的用法。在这篇本来是准备直接用一个具体的例子来示范CQRS模式编程,主要是写端,或者是数据采集端。想着模拟收银机的后端操作,可以使用集群分片(cluster-sharding),每个...[2019/3/21]
2018-12-09 疑似bug_中文代码示例之Programming in Scala笔记第九十章
续前文: 中文代码示例之Programming in Scala笔记第七八章
源文档库: program-in-chinese/Programming_in_Scala_study_notes_zh
疑似中文命名bug
program-in-chinese/Programming_in_S...[2019/3/12]
2018-11-13 中文代码示例之Programming in Scala学习笔记第二三章
由于拷贝后文档格式有变, 仅摘几段如下. 完整而且代码带语法高亮的源版在: program-in-chinese/Programming_in_Scala_study_notes_zh
前言: 本书已有中文版, 此笔记并不是对原教程的翻译, 而是围绕示例进行选摘, 并顺便将所有示例改成中文命...[2019/3/11]
2018-11-27 中文代码示例之Programming in Scala笔记第七八章
续前文:
中文代码示例之Programming in Scala学习笔记第二三章
中文代码示例之Programming in Scala笔记第四五六章.
同样仅节选有意思的例程部分作演示之用. 源文档仍在: program-in-chinese/Programming_in_Scala_...[2019/3/11]
2018-02-17 中文代码示例[译]Scala中创建隐式函数
前言: 学习Scala时, 顺便翻译一下自己有兴趣的文章. 代码中所有命名都中文化了(不是翻译). 比如原文用的是甜甜圈的例子.
原文: Scala Tutorial - Learn How To Create Implicit Function
简述
本文学习如何创建隐式函数, 以便对几乎任...[2019/3/8]
Scala_数据类型
Scala与Java有着相同的数据类型,Scala数据类型都是对象,Scala中没有类似Java中那样的原始类型。Scala 的基本数据类型有: Byte,Short,Int,Long 和 Char (这些成为整数类型)。整数类型加上 Float 和 Double 成为数值类型。此外还有 Stri...[2019/3/5]
Scala_方法和函数
方法的定义
def functionName([参数列表]) : [return type] = {
function body
return []
}
如果没有=和{}包裹的方法体,那么该方法被隐式申明为抽象(abstract)方法,包含它的类就是抽象类。
...[2019/3/5]
SpringBoot整合Scala构建Web服务的方法
今天我们尝试Spring Boot整合Scala,并决定建立一个非常简单的Spring Boot微服务,使用Scala作为编程语言进行编码构建。
创建项目
初始化项目
复制代码 代码如下:mvn archetype:generate -DgroupId=com.edurt. i...[2019/3/5]
scala-数组操作
package com.bigdata
import scala.collection.mutable.ArrayBuffer
object ArrayO {
def main(args: Array[String]): Unit = {
val arrayBuffer = Ar...[2019/2/15]
Akka-CQRS(2)- 安装部署cassandra cluster,ubuntu-16.04.1-LTS and MacOS mojave
对于akka-cluster这样的分布式软件系统来说,选择配套的数据库类型也是比较讲究的,最好也是分布式的,如ca andra,能保证良好的HA特性。前面的例子里示范akka-persistence时已经使用了ca andra作为journal和snapshot-store。一直以来基...[2019/2/12]
Spark笔记(一):错误总结
1.转义字符:
常见的replaceAll,split,mkstring中涉及到特殊字符的都要加上转义字符,比如str.split("\\|"),str.replaceAll("\\[", "")
报错信息:
&...[2019/1/28]
Scala学习(一)Scala学习(一)
1.scala面向行的语言,一句是一行的话,末尾的分号可有可无.
2.数据类型: Byte Short Int Long Float Double Char String Boolean,Unit,Nothing,Any,AnyRef
3.变量声明:(声明时必须赋初始值) &nbs...[2019/1/28]
Akka-CQRS(0)- 基于akka-cluster的读写分离框架,构建gRPC移动应用后端架构
上一篇我们讨论了akka-cluster的分片(sharding)技术。在提供的例子中感觉到akka这样的分布式系统工具特别适合支持大量的带有内置状态的,相对独立完整的程序在集群节点上分布运算。这里重点要关注这些程序的内部状态,它们会占用系统资源包括内存。把状态保存在内存...[2019/1/23]
Scala-Unit7-Scala并发编程模型AKKA
一、Akka简介
Akka时spark的底层通信框架,Hadoop的底层通信框架时rpc。
并发的程序编写很难,但是Akka解决了spark的这个问题。
Akka构建在JVM平台上,是一种高并发、分布式、并且容错的应用工具包;
Akka使用Scala语言编写,同时它提供了S...[2019/1/21]
Scala-Unit6-final/type关键字、样例类&样例对象Scala-Unit6-final/type关键字、样例类&样例对象
一、关键字
1.final关键字
用final修饰的类:不能被继承
用final修饰的方法:不能被重写
注意:(1)在Scala中变量不需要用final修饰,因为val与var已经限制了变量是否可变
(2)final不能修饰特质,但是可以修饰抽象类
trai...[2019/1/18]
Akka-Cluster(6)- Cluster-Sharding:集群分片,分布式交互程序核心方式
在前面几篇讨论里我们介绍了在集群环境里的一些编程模式、分布式数据结构及具体实现方式。到目前为止,我们已经实现了把程序任务分配给处于很多服务器上的actor,能够最大程度的利用整体系统的硬件资源。这是因为通过akka-cluster能够把很多服务器组合成一个虚拟的整体系统,编程人员不需要知道负责运算...[2019/1/17]
Scala-Unit5-Scala面对对象与模式匹配
Java中的面向对象:万物皆对象。
我们要封装数据,定义模板等操作,素以我们需要面向对象。
=========================================================================
一、Scala中的单例对象
在java...[2019/1/17]
scala-Unit-3-Scala基础语法2
一、定义方法、函数、及方法转换为函数
1.方法的定义:
def 方法名(参数1:数据类型,参数2:数据类型...):返回值类型 ={
}
2.定义函数:
val h1 = (a:Int,b:Int) => {a * b}
...[2019/1/14]
Spark-Unit2-Spark交互式命令行与SparkWordCount
一、Spark交互式命令行
启动脚本:spark-shell
先启动spark:. tart-all.sh
本地模式启动命令:/bin park-shell
集群模式启动命令:/bin park-shell --master spark: park-1:7077 --tot...[2019/1/14]
Scala-Unit-2-Scala基础语法1Scala-Unit-2-Scala基础语法1
一、Scala程序的开始->HelloScala
这里的操作如同java的helloworld程序,直接放代码!
object HelloScala{
def main(args:Array[String]){
println("HelloScala") ...[2019/1/7]
Akka-Cluster(5)- load-balancing with backoff-supervised stateless computation - 无状态任务集群节点均衡分配
分布式程序运算是一种水平扩展(scale-out)运算模式,其核心思想是能够充分利用服务器集群中每个服务器节点的计算资源,包括:CPU、内存、硬盘、IO总线等。首先对计算任务进行分割,然后把细分的任务分派给各节点去运算。细分的任务相互之间可以有关联或者各自为独立运算,使用...[2019/1/4]
scala字段权限问题
1.对象私有字段
1)private
cla Counter(num: Int) {
private var value = 0
def increment() = {
value += 1
}
def isLe (other: Counter) =...[2019/1/2]
Akka-Cluster(4)- DistributedData, 分布式数据类型Akka-Cluster(4)- DistributedData, 分布式数据类型
在实际应用中,集群环境里共用一些数据是不可避免的。我的意思是有些数据可以在任何节点进行共享同步读写,困难的是如何解决更改冲突问题。本来可以通过分布式数据库来实现这样的功能,但使用和维护成本又过高,不值得。分布式数据类型distributed-data (ddata)正是为解决这样的困局而设计的。a...[2018/12/24]
Scala(四):对象
对象:Object 1.单例对象 2.伴生对象 3.扩展类或特质的对象 4.apply方法 5.应用程序对象 6.枚举 1.单例对象
Scala中没有你静态方法或静态字段,可以用object这个语法结构来实现这个目的。对象定义某个类的单个实例,包...[2018/12/17]
Scala(三):类
类:Cla 1.简单类和无参方法 2.带getter和setter属性 3.只带getter属性 4.对象私有字段 5.Bean属性 6.辅助构造器 7.主构造器 8.嵌套类
1.简单类和无参方法 Scala中的简单类和Java...[2018/12/17]
Scala(二):元组、数组、映射
元组:Tuple,不同类型值的聚集。 将固定数量的项目组合在一起,以便它们可以作为一个整体传递。 与数组或列表不同,元组可以容纳不同类型的对象,但它们也是不可变的。 元祖的实际类型取决于它的分量的类型,比如下面的类型实际为 Tuple3[Int,String,String] 索引是从1开始的
...[2018/12/14]
Scala(一):函数、流程控制、参数
Function:函数 函数的定义: def 函数名(参数):返回类型=函数实现体 eg:def abs(x:Long) : Long = if(x >= 0) x else -x 你必须给出所有参数的类型。不过,只要函数不是递归的,你就不需要指定返回类型,。Scala编译...[2018/12/14]
Akka-Cluster(3)- ClusterClient, 集群客户端
上篇我们介绍了distributed pub ub消息传递机制。这是在同一个集群内的消息共享机制:发布者(publisher)和订阅者(subscriber)都在同一个集群的节点上,所有节点上的DistributedPubSubMediator通过集群内部的沟通机制在底层构建了消息流...[2018/12/11]
iOS Swift WisdomHUD 提示界面框架
iOS Swift WisdomHUD 提示界面框架 Framework Use profile(应用简介)
一:WisdomHUD简介
今天给大家介绍一款iOS的界面显示器:WisdomHUD,WisdomHUD是Swift 4.2编写的framework,支持iOS8.0及以上...[2018/12/6]
spark本地环境的搭建到运行第一个spark程序
搭建spark本地环境
搭建Java环境
(1)到官网下载JDK
官网链接:https: www.oracle.com/technetwork/java/javase/download jdk8-downloads-2133151.html
(2)解压缩到指定的目录
>sudo...[2018/11/30]
Json转Scala对象一个问题
今天与第三方对接一个接口,由于我们是用Scala语言,对方的返回体Json需要转换为一个对象,对象里面包含一个数组也可以说是集合,于是乎就用List接收,看似没问题,编译也没报错,自测调用的时候就报了上面这个错;
源代码为:
原因就出在这里,这个地方需要用到 ...[2018/11/17]
聊聊 scala 的模式匹配
一. scala 模式匹配(pattern matching)
pattern matching 可以说是 scala 中十分强大的一个语言特性,当然这不是 scala 独有的,但这不妨碍它成为 scala 的语言的一大利器。
scala 的 pattern matching 是类似这样的,
...[2018/11/16]
Akka-Cluster(2)- distributed pub/sub mechanism 分布式发布/订阅机制
上期我们介绍了cluster singleton,它的作用是保证在一个集群环境里永远会有唯一一个singleton实例存在。具体使用方式是在集群所有节点部署ClusterSingletonManager,由集群中的leader节点选定其中一个节点并指示上面的Cluster...[2018/11/9]
Scala字节数组转换为数字
1. 2个字节数组转换为整数
1 def bytes2uint8(_bytes: Array[Byte], _offset: Int): Int = {
2 val b0 = _bytes(_offset) & 0xff
3 return b0
4 }
5 ...[2018/11/9]
Scala 中的异步事件处理
在任何并发性应用程序中,异步事件处理都至关重要。无论事件的来源是什么(不同的计算任务、I/O 操作或与外部系统的交互),您的代码都必须跟踪事件,协调为响应它们而执行的操作。应用程序可以采用两种基本方法之一来实现异步事件处理: 阻塞:一个等待事件的协调线程。 非阻塞:事件向应用程序生成某种形式的通知...[2018/11/6]
Scala Try 与错误处理
一.概述
当你在尝试一门新的语言时,可能不会过于关注程序出错的问题, 但当真的去创造可用的代码时,就不能再忽视代码中的可能产生的错误和异常了。 鉴于各种各样的原因,人们往往低估了语言对错误处理支持程度的重要性。
事实会表明,Scala 能够很优雅的处理此类问题, 这一部分,我会介绍 Scala ...[2018/11/2]
Scala模式匹配常用Scala模式匹配常用
今天在工作中遇到的几个小问题,总结一下:
1.因为业务需要调用PHP的接口,获取到的返回体需要做一段逻辑处理,然而某个字段接收到的参数是io.serializable类型,字段的类型不是预期的string类型,当时有点懵逼,因为是用Scala的match case做模式匹配,也没多想,...[2018/11/2]
Scala环境搭建及Intellij IDEA安装
1.JDK官网地址:https: www.oracle.com/technetwork/java/javase/download jdk8-downloads-2133151.html
Scala是基于java之上,大量使用java的类库和变量,因此在使用Scala之前必须先安装 Java
安...[2018/10/31]
关于在MySql的decimal中犯的一个错-此篇文章目的在于警醒自己
今天在运行一段程序的时候报了Out of range value错误,网上的解释是说这个值与数据库字段类型不匹配,然而程序里面设置的是BigDecimal,数据库设置的是decimal,没有多想就把sql语句copy出来在数据库执行,发现是OK的,就有点懵逼了,然后就各种Debug,没有发现任何问...[2018/10/29]