自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

涤生手记

知道不去做,等于不知道。知行合一。

  • 博客(18)
  • 资源 (1)
  • 论坛 (1)
  • 收藏
  • 关注

原创 Scala系列22:Scala泛型,非变,协变,逆变等使用详解

0.泛型scala和Java一样,类和特质、方法都可以支持泛型。我们在学习集合的时候,一般都会涉及到泛型。所以泛型,简单点理解就是定义(类,方法等)不指定具体数据类型,而在使用时才传入具体使用类型,这样的好处就是支持多类型的复用。0.1定义一个泛型方法在scala中,使用方括号[]来定义类型参数。语法格式def 方法名[泛型名称](..) = { //...}示例说明用一个方法来获取任意类型数组的中间的元素 不考虑泛型直接实现(基于Array[Int]实现) 加

2020-09-08 22:02:20 603

原创 Scala系列21:Scala提取器的使用

0.提取器(Extractor)我们之前已经使用过scala中非常强大的模式匹配功能了,通过模式匹配,我们可以快速匹配样例类中的成员变量。例如:// 1. 创建两个样例类case class Person(name:String, age:Int)case class Order(id:String)def main(args: Array[String]): Unit = { // 2. 创建样例类对象,并赋值为Any类型 val zhangsan:Any = Perso

2020-09-08 21:14:17 156

原创 Scala系列20:Scala中异常捕获与抛出异常

0.异常处理来看看下面一段代码 def main(args: Array[String]): Unit = { val i = 10 / 0 println("你好!") }Exception in thread "main" java.lang.ArithmeticException: / by zero at ForDemo$.main(ForDemo.scala:3) at ForDemo.main(ForDemo.scala)执行程序,可以看到

2020-09-08 14:35:22 896

原创 Scala系列19:Option类型,隐函数以及正则表达式的使用详解

0. Option类型使用Option类型,可以用来有效避免空引用(null)异常。也就是说,将来我们返回某些数据时,可以返回一个Option类型来替代。scala中,Option类型来表示可选值。这种类型的数据有两种形式: Some(x):表示实际的值 None:表示没有值 使用getOrElse方法,当值为None是可以指定一个默认值 0.1示例演示示例1定义一个两个数相除的方法,使用Option类型来封装结果 然后使用模式匹配来打印...

2020-09-07 15:31:52 219

原创 Scala系列18: 模式匹配之简单匹配,匹配类型,守卫,匹配样例类,匹配集合等详解

0.模式匹配scala中有一个非常强大的模式匹配机制,可以应用在很多场景:switch语句 类型查询 使用模式匹配快速获取数据1.简单模式匹配在Java中,有switch关键字,可以简化if条件判断语句。在scala中,可以使用match表达式替代。1.1 语法格式变量 match { case "常量1" => 表达式1 case "常量2" => 表达式2 case "常量3" => 表达式3 case _ => 表达式

2020-09-07 14:40:57 221

原创 Scala系列17:样例类,样例对象以及样例方法使用详解

0.样例类 样例类是一种特殊类,它可以用来快速定义一个用于保存数据的类(类似于Java POJO类),在后续要学习并发编程和spark、flink这些框架也都会经常使用它。0.1定义样例类语法语法格式 在[]里的参数是可选的case class 样例类名([var/val] 成员变量名1:类型1, 成员变量名2:类型2, 成员变量名3:类型3)如果要实现某个成员变量可以被修改,可以添加var 默认为val,可以省略0.2示例 | 定义一个样例类参考代码/**示例...

2020-09-05 18:53:48 3426

原创 Scala系列16:trait实战,trait实现调用链模式

1.业务需求我们如果要开发一个支付功能,往往需要执行一系列的验证才能完成支付。例如:进行支付签名校验 数据合法性校验 ...如果将来因为第三方接口支付的调整,需要增加更多的校验规则,此时如何不修改之前的校验代码,来实现扩展呢?2.业务逻辑剖析2.1责任链模式2.2trait调用链【尖叫提示】 类多继承traint方法的调用顺序和构造器的调用顺序是不一致的。 类继承了多个trait后,可以依次调用多个trait中的同一个方法,只要让多个trait中的同一个方法在最...

2020-09-05 17:08:24 620

原创 Scala系列15:抽象,匿名内部类,特质,模板等使用详解与演示

0. 抽象类和Java语言一样,scala中也可以定义抽象类0.1 定义如果类的某个成员在当前类中的定义是不包含完整的,它就是一个抽象类不完整定义有两种情况:方法没有方法体(抽象方法) 变量没有初始化(抽象字段)定义抽象类和Java一样,在类前面加上abstract关键字// 定义抽象类abstract class 抽象类名 { // 定义抽象字段 val 抽象字段名:类型 // 定义抽象方法 def 方法名(参数:参数类型,参数:参数类型...):返回类型

2020-09-05 16:43:00 341

原创 Scala系列14:scala继承,重写,super,类型推断等使用详解

0.Scala继承scala语言是支持面向对象编程的,我们也可以使用scala来实现继承,通过继承来减少重复代码。0.1定义语法scala和Java一样,使用extends关键字来实现继承 可以在子类中定义父类中没有的字段和方法,或者重写父类的方法 类和单例对象都可以从某个父类继承语法class/object 子类 extends 父类 { ..}Copy示例0.2示例 | 类继承 定义一个Person类,再定义一个Student类,继承自Person类

2020-09-04 20:10:57 469

原创 Scala系列13:scala单例对象,main方法,伴生对象,apply方法等使用详解

0.单例对象scala中没有Java中的静态成员,我们想要定义类似于Java的static变量、static方法,就要使用到scala中的单例对象——object.0.1定义单例对象单例对象表示全局仅有一个对象(类似于Java static概念)在scala中定义单例对象和定义类很像,就是把class换成object 在object中定义的成员变量类似于Java的静态变量 可以使用object对象.成员变量或者对象 成员变量等方式直接引用成员变量0.1.1示例示例说明定义一个D

2020-09-04 15:20:29 512

原创 Scala系列12:Scala主构造器与辅助构造器使用详解与演示

0.类的构造器 跟Java一样,当我们创建类对象的时候,会自动调用类的构造器。之前我们创建类对象没有显示调用构造器,那是因为之前使用的都是默认构造器,此外,Scala中构造器分为主构造器和辅助构造器。我们接下来要学习如何自定义构造器。 同样,跟Java/C++一样,Scala可以有任意多的构造器,在Scala里,有一个主构造器和任意多的辅助构造器。1.主构造器我们学习过,Java的构造器,有构造列表和构造代码块class Person { // 成...

2020-09-03 19:07:47 543

原创 Scala系列11:Scala类与对象,成员方法与变量,修饰符等详解

0.类和对象scala是支持面向对象的,也有类和对象的概念。我们依然可以基于scala语言来开发面向对象的应用程序。0.1创建类和对象用法使用class来定义一个类 使用new来创建对象示例创建一个Person类,并创建它的对象步骤创建一个scala项目,并创建一个Object 添加main方法 创建类和对象实现在IDEA中创建项目,并创建一个Object(main方法必须放在Object中) 添加main方法 创建一个Person类object _01Cl

2020-09-03 17:08:38 569

原创 Scala系列10:函数式编程groupBy与排序sorted详解

0.Scala函数式编程我们将来使用Spark/Flink的大量业务代码都会使用到函数式编程。下面这些事开发中常用的函数式编程。注意这些函数都是操作 Scala 集合的,一般会进行两类操作:转换操作(transformation )和行动操作(actions)(有些人喜欢叫他为聚合操作)。第一种操作类型将集合转换为另一个集合,第二种操作类型返回某些类型的值。遍历( foreach ) 映射( map ) 映射扁平化( flatmap ) 过滤( filter ) 是否存在( exists )

2020-09-02 19:09:51 532

原创 Scala系列9:聚合操作reduce,filter,reduceLeft,reduceRight,fold的使用详解

0.Scala函数式编程我们将来使用Spark/Flink的大量业务代码都会使用到函数式编程。下面这些事开发中常用的函数式编程。注意这些函数都是操作 Scala 集合的,一般会进行两类操作:转换操作(transformation )和行动操作(actions)(有些人喜欢叫他为聚合操作)。第一种操作类型将集合转换为另一个集合,第二种操作类型返回某些类型的值。遍历( foreach ) 映射( map ) 映射扁平化( flatmap ) 过滤( filter ) 是否存在( exists )

2020-09-02 16:25:49 1783

原创 Scala系列8:函数式编程之map,flatten,flatmap的使用详解

0.Scala函数式编程我们将来使用Spark/Flink的大量业务代码都会使用到函数式编程。下面这些事开发中常用的函数式编程。注意这些函数都是操作 Scala 集合的,一般会进行两类操作:转换操作(transformation )和行动操作(actions)(有些人喜欢叫他为聚合操作)。第一种操作类型将集合转换为另一个集合,第二种操作类型返回某些类型的值。遍历( foreach ) 映射( map ) 映射扁平化( flatmap ) 过滤( filter ) 是否存在( exists )

2020-09-02 14:49:53 935

原创 Scala系列7:函数式编程之foreach,forall的使用详解

0.Scala函数式编程我们将来使用Spark/Flink的大量业务代码都会使用到函数式编程。下面这些事开发中常用的函数式编程。遍历( foreach ) 映射( map ) 映射扁平化( flatmap ) 过滤( filter ) 是否存在( exists ) 排序( sorted 、 sortBy 、 sortWith ) 分组( groupBy ) 聚合计算( reduce ) 折叠( fold )1. foreach的使用详解【1.1语法结构】foreach(f

2020-09-02 11:23:03 922 1

原创 Scala系列6:Scala中Array,BufferArray,元组,list,set,map等集合使用详解

Scala中集合类的序列有:数组,元组,列表,Set集,Map映射,其中数组,列表,Set,Map又分为可变和不可变两种。下面就此详细展开介绍使用。0.数组的使用详解scala中数组的概念是和Java类似,可以用数组来存放一组数据。scala中,有两种数组,一种是定长数组,另一种是变长数组。0.1 定长数组定长数组指的是数组的长度是不允许改变的。通过指定长度定义数组,语法格式如下:val/var 变量名 = new Array[元素类型](数组长度) //方式1:通过指定...

2020-09-01 17:09:25 638

原创 Scala系列5:轻松搞定Scala中方法与函数的区别与使用

0.方法介绍一个类可以有自己的方法, scala中的方法和Java方法类似。 但scala与Java定义方法的语法是不一样的, 而且scala支持多种调用方式。1.定义方法2.方法参数 *默认参数 *带名参数 *变长参数3.方法返回值类型推断4.方法调用方式 *后缀调用法 *中缀调用法 *花括号调用法 *无括号调用法 0.1.定义方法定义方法的语法格式:

2020-09-01 10:59:48 415

Python3.5官方文档中文版本chm格式

python3.5版本,官方文档中文版,已经 集成为chm格式,直接打开即可使用,更加方便好操作。免费下载吧

2018-09-06

牛大财有大才的留言板

发表于 2020-01-02 最后回复 2020-05-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除