
Scala
Scala
大数据点滴
不忘初心,方得始终。
展开
-
Scala-泛型
一、协变和逆变1)语法class MyList[+T]{ //协变}class MyList[-T]{ //逆变}class MyList[T] //不变2)说明协变:Son是Father的子类,则MyList[Son] 也作为MyList[Father]的“子类”。逆变:Son是Father的子类,则MyList[Son]作为MyList[Father]的“父类”。不变:Son是Father的子类,则MyList[Father]与MyList[Son]“无父子关系”。原创 2020-08-31 00:23:33 · 5032 阅读 · 0 评论 -
Scala-隐式转换
目录一、隐式函数二、隐式参数三、隐式类四、隐式解析机制 当编译器第一次编译失败的时候,会在当前的环境中查找能让代码编译通过的方法,用于将类型进行转换,实现二次编译一、隐式函数1)说明 隐式转换可以在不需改任何代码的情况下,扩展某个类的功能。2)案例实操 需求:通过隐式转化为Int类型增加方法。class MyRichInt(val self: Int) { def myMax(i: Int): Int = {...原创 2020-08-31 00:01:28 · 4045 阅读 · 0 评论 -
Scala-异常
目录一、 Java异常处理二、 Scala异常处理语法处理上和Java类似,但是又不尽相同。一、Java异常处理public class ExceptionDemo { public static void main(String[] args) { try { int a = 10; int b = 0; int c = a / b; }catch (Arithmetic...原创 2020-08-30 23:25:41 · 4165 阅读 · 0 评论 -
Scala-模式匹配
目录一、基本语法二、模式守卫三、 模式匹配类型3.1 匹配常量3.2 匹配类型3.3 匹配数组3.4 匹配列表3.5 匹配元组3.6 匹配对象及样例类四、 变量声明中的模式匹配五、 for表达式中的模式匹配六、 偏函数中的模式匹配(了解)Scala中的模式匹配类似于Java中的switch语法int i = 10switch (i) { case 10 : System.out.println("10"); break;...原创 2020-08-30 22:58:14 · 4731 阅读 · 0 评论 -
Scala面向对象相关知识
6.5 抽象属性和抽象方法6.5.1 抽象属性和抽象方法1)基本语法 (1)定义抽象类:abstract class Person{} //通过abstract关键字标记抽象类 (2)定义抽象属性:val|var name:String //一个属性没有初始化,就是抽象属性 (3)定义抽象方法:def hello():String //只声明而没有实现的方法,就是抽象方法案例实操 // 定义抽象类abstract class Per...原创 2020-08-27 15:28:16 · 5843 阅读 · 0 评论 -
Scala集合
一、集合的简介1)Scala的集合有三大类:序列Seq、集Set、映射Map,所有的集合都扩展自Iterable特质。2)对于几乎所有的集合类,Scala都同时提供了可变和不可变的版本,分别位于以下两个包不可变集合:scala.collection.immutable可变集合:scala.collection.mutable3)Scala不可变集合,就是指该集合对象不可修改,每次修改就会返回一个新对象,而不会对原对象进行修改。类似于java中的String对象4)可变集合,就是这个集原创 2020-08-26 23:44:46 · 6428 阅读 · 0 评论 -
Scala字符串插值
一、简介自2.10.0版本开始,Scala提供了一种新的机制来根据数据生成字符串:字符串插值。字符串插值允许使用者将变量引用直接插入处理过的字面字符中。如下例:val name="James"println(s"Hello,$name")//Hello,James在上例中, s”Hello,$name” 是待处理字符串字面,编译器会对它做额外的工作。待处理字符串字面通过“号前的字符来标示(例如:上例中是s)。二、用法Scala 提供了三种创新的字符串插值方法:s,f 和 raw.原创 2020-08-23 21:03:20 · 6011 阅读 · 0 评论 -
Scala 方法与函数
Scala 有方法与函数,二者在语义上的区别很小。Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量。换句话来说在类中定义的函数即是方法。Scala 中的方法跟 Java 的类似,方法是组成类的一部分。Scala 中的函数则是一个完整的对象,Scala 中的函数其实就是继承了 Trait 的类的对象。Scala 中使用val语句可以定义函数,def语句定义方法。class Test{ def m(x: Int) = x + 3 val f = (x: Int) ...原创 2020-08-23 20:05:45 · 3915 阅读 · 0 评论 -
Scala函数式编程
一、函数式编程1)面向对象编程解决问题,分解对象,行为,属性,然后通过对象的关系以及行为的调用来解决问题。对象:用户行为:登录、连接JDBC、读取数据库属性:用户名、密码Scala语言是一个完全面向对象编程语言。万物皆对象对象的本质:对数据和行为的一个封装2)函数式编程解决问题时,将问题分解成一个一个的步骤,将每个步骤进行封装(函数),通过调用这些封装好的步骤,解决问题。例如:请求->用户名、密码->连接JDBC->读取数据库Scala语言是一个完全函数式原创 2020-08-23 18:17:05 · 5343 阅读 · 0 评论 -
Scala流程控制知识
目录一、 流程控制1.1 分支控制if-else1.1.1 单分支1.1.2 双分支1.1.3 多分支1.2 嵌套分支1.3 Switch分支结构1.4 For循环控制1.4.1 范围数据循环(To)1.4.2 范围数据循环(Until)1.4.3 循环守卫1.4.4 循环步长1.4.5 嵌套循环1.4.6 引入变量1.4.7 循环返回值1.4.8 倒序打印1.5 While和do..While循环控制1.5.1 While循环控制原创 2020-08-22 23:33:19 · 4523 阅读 · 0 评论 -
Scala基础知识大全
二、变量和数据类型2.1 注释Scala注释使用和Java完全一样。注释是一个程序员必须要具有的良好编程习惯。将自己的思想通过注释先整理出来,再用代码去体现。1)基本语法(1)单行注释://(2)多行注释:/* */(3)文档注释:/****/2)代码规范(1)使用一次tab操作,实现缩进,默认整体向右边移动,用shift+tab整体向左移(2)或者使用ctrl + alt + L来进行格式化(3)运算符两边习惯性各加一个空格。比如:2 ...原创 2020-08-21 20:23:22 · 3910 阅读 · 0 评论