![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Scala
文章平均质量分 60
Scala
SuperQiu~
这个作者很懒,什么都没留下…
展开
-
Scala 泛型
Scala 泛型1 协变和逆变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]与 MyLi原创 2021-12-30 19:44:50 · 129 阅读 · 0 评论 -
Scala 隐式转换
Scala 隐式转换当编译器第一次编译失败的时候,会在当前的环境中查找能让代码编译通过的方法,用于将类型进行转换,实现二次编译1 隐式函数1)说明隐式转换可以在不需改任何代码的情况下,扩展某个类的功能。2)案例实操需求:通过隐式转化为 Int 类型增加方法。class MyRichInt(val self: Int) { def myMax(i: Int): Int = { if (self < i) i else self } def myMin(i: Int): I原创 2021-12-30 19:41:30 · 237 阅读 · 0 评论 -
Scala 异常
Scala 异常语法处理上和 Java 类似,但是又不尽相同。1 Java 异常处理public class ExceptionDemo { public static void main(String[] args) { try { int a = 10; int b = 0; int c = a / b; }catch (ArithmeticException e){ // catch 时,需要将范围小的写到前面 e.printStackTrace(); }原创 2021-12-30 19:35:34 · 106 阅读 · 0 评论 -
Scala 模式匹配
Scala 模式匹配Scala 中的模式匹配类似于 Java 中的 switch 语法int i = 10switch (i) { case 10 :System.out.println("10");break; case 20 : System.out.println("20");break; default : System.out.println("other number");break;}但是 scala 从语法中补充了更多的功能,所以更加强大。1 基本语法模式匹原创 2021-12-30 19:32:07 · 164 阅读 · 0 评论 -
Scala 集合-队列并行集合
Scala 集合-队列1)说明Scala 也提供了队列(Queue)的数据结构,队列的特点就是先进先出。进队和出队的方法分别为 enqueue 和 dequeue。2)案例实操object TestQueue { def main(args: Array[String]): Unit = { val que = new mutable.Queue[String]() que.enqueue("a", "b", "c") println(que.dequeue()) println(原创 2021-12-29 22:02:23 · 296 阅读 · 0 评论 -
Scala 集合-集合常用函数
Scala 集合-集合常用函数1 基本属性和常用操作1)说明(1)获取集合长度(2)获取集合大小(3)循环遍历(4)迭代器(5)生成字符串(6)是否包含2)案例实操object TestList { def main(args: Array[String]): Unit = { val list: List[Int] = List(1, 2, 3, 4, 5, 6, 7) //(1)获取集合长度 println(list.length) //(2)获取集合大小原创 2021-12-29 22:00:13 · 357 阅读 · 0 评论 -
Scala 集合-元组
Scala 集合-元组1)说明元组也是可以理解为一个容器,可以存放各种相同或不同类型的数据。说的简单点,就是将多个无关的数据封装为一个整体,称为元组。注意:元组中最大只能有 22 个元素。2)案例实操(1)声明元组的方式:(元素 1,元素 2,元素 3)(2)访问元组(3)Map 中的键值对其实就是元组,只不过元组的元素个数为 2,称之为对偶object TestTuple { def main(args: Array[String]): Unit = { //(1)声明元组的方式原创 2021-12-29 21:46:39 · 165 阅读 · 0 评论 -
Scala 集合-Map集合
Scala 集合-Map集合Scala 中的 Map 和 Java 类似,也是一个散列表,它存储的内容也是键值对(key-value映射1 不可变 Map1)说明(1)创建不可变集合 Map(2)循环打印(3)访问数据(4)如果 key 不存在,返回 02)案例实操object TestMap { def main(args: Array[String]): Unit = { // Map //(1)创建不可变集合 Map val map = Map( "a"->原创 2021-12-29 21:45:18 · 427 阅读 · 0 评论 -
Scala 集合-Set 集合
Scala 集合-Set 集合默认情况下,Scala 使用的是不可变集合,如果你想使用可变集合,需要引用scala.collection.mutable.Set 包1 不可变 Set1)说明(1)Set 默认是不可变集合,数据无序(2)数据不可重复(3)遍历集合2)案例实操object TestSet { def main(args: Array[String]): Unit = { //(1)Set 默认是不可变集合,数据无序 val set = Set(1,2,3,4,5,6)原创 2021-12-29 21:42:29 · 1494 阅读 · 0 评论 -
Scala 集合-列表 List
Scala 集合-列表 List1 不可变 List1)说明(1)List 默认为不可变集合(2)创建一个 List(数据有顺序,可重复)(3)遍历 List(4)List 增加数据(5)集合间合并:将一个整体拆成一个一个的个体,称为扁平化(6)取指定数据(7)空集合 Nil2)案例实操object TestList { def main(args: Array[String]): Unit = { //(1)List 默认为不可变集合 //(2)创建一个 List(数据有顺序,原创 2021-12-29 21:40:05 · 362 阅读 · 0 评论 -
Scala 集合-数组
Scala 集合-数组1 不可变数组1)第一种方式定义数组定义:val arr1 = new Array[Int](10)(1)new 是关键字(2)[Int]是指定可以存放的数据类型,如果希望存放任意数据类型,则指定 Any(3)(10),表示数组的大小,确定后就不可以变化2)案例实操object TestArray{ def main(args: Array[String]): Unit = { //(1)数组定义 val arr01 = new Array[Int](4)原创 2021-12-29 21:37:07 · 329 阅读 · 0 评论 -
Scala 集合-集合简介
Scala 集合-集合简介1)Scala 的集合有三大类:序列 Seq、集 Set、映射 Map,所有的集合都扩展自 Iterable特质。2)对于几乎所有的集合类,Scala 都同时提供了可变和不可变的版本,分别位于以下两个包不可变集合:scala.collection.immutable可变集合: scala.collection.mutable3)Scala 不可变集合,就是指该集合对象不可修改,每次修改就会返回一个新对象,而不会对原对象进行修改。类似于 java 中的 String 对象原创 2021-12-29 21:30:56 · 134 阅读 · 0 评论 -
Scala 面向对象-扩展
Scala 面向对象-扩展1 类型检查和转换1)说明(1)obj.isInstanceOf[T]:判断 obj 是不是 T 类型。(2)obj.asInstanceOf[T]:将 obj 强转成 T 类型。(3)classOf 获取对象的类名。2)案例实操class Person{}object Person { def main(args: Array[String]): Unit = { val person = new Person //(1)判断对象是否为某个类型的实例 v原创 2021-12-28 23:16:10 · 136 阅读 · 0 评论 -
Scala 面向对象-特质(Trait)
Scala 面向对象-特质(Trait)Scala 语言中,采用特质 trait(特征)来代替接口的概念,也就是说,多个类具有相同的特质(特征)时,就可以将这个特质(特征)独立出来,采用关键字 trait 声明。Scala 中的 trait 中即可以有抽象属性和方法,也可以有具体的属性和方法,一个类可以混入(mixin)多个特质。这种感觉类似于 Java 中的抽象类。Scala 引入 trait 特征,第一可以替代 Java 的接口,第二个也是对单继承机制的一种补充。1 特质声明1)基本语法tr原创 2021-12-28 23:13:48 · 250 阅读 · 0 评论 -
Scala 面向对象-单例对象(伴生对象)
Scala 面向对象-单例对象(伴生对象)Scala语言是完全面向对象的语言,所以并没有静态的操作(即在Scala中没有静态的概念)。但是为了能够和Java语言交互(因为Java中有静态概念),就产生了一种特殊的对象来模拟类对象,该对象为单例对象。若单例对象名与类名一致,则称该单例对象这个类的伴生对象,这个类的所有“静态”内容都可以放置在它的伴生对象中声明。1 单例对象语法1)基本语法object Person{val country:String="China"}2)说明(1)单例对象采原创 2021-12-28 23:05:35 · 226 阅读 · 0 评论 -
Scala 面向对象-抽象类
Scala 面向对象-抽象类1 抽象属性和抽象方法1)基本语法(1)定义抽象类:abstract class Person{} //通过 abstract 关键字标记抽象类(2)定义抽象属性:val|var name:String //一个属性没有初始化,就是抽象属性(3)定义抽象方法:def hello():String //只声明而没有实现的方法,就是抽象方法案例实操abstract class Person { val name: String def hello(): Unit}原创 2021-12-28 23:03:35 · 103 阅读 · 0 评论 -
Scala 面向对象-继承和多态
Scala 面向对象-继承和多态1)基本语法class 子类名 extends 父类名 { 类体 }(1)子类继承父类的属性和方法(2)scala 是单继承2)案例实操(1)子类继承父类的属性和方法(2)继承的调用顺序:父类构造器->子类构造器class Person(nameParam: String) { var name = nameParam var age: Int = _ def this(nameParam: String, ageParam: Int) { th原创 2021-12-28 22:43:59 · 633 阅读 · 0 评论 -
Scala 面向对象-类和对象
Scala 面向对象-类和对象类:可以看成一个模板对象:表示具体的事物1 定义类1)回顾:Java 中的类如果类是 public 的,则必须和文件名一致。一般,一个.java 有一个 public 类注意:Scala 中没有 public,一个.scala 中可以写多个类。1)基本语法[修饰符] class 类名 { 类体} 说明(1)Scala 语法中,类并不声明为 public,所有这些类都具有公有可见性(即默认就是public)(2)一个 Scala 源文件可以包含多个类原创 2021-12-28 22:40:46 · 148 阅读 · 0 评论 -
Scala 面向对象-Scala 包
Scala 面向对象Scala 的面向对象思想和 Java 的面向对象思想和概念是一致的。Scala 中语法和 Java 不同,补充了更多的功能。1 Scala 包1)基本语法package 包名2)Scala 包的三大作用(和 Java 一样)(1)区分相同名字的类(2)当类很多时,可以很好的管理类(3)控制访问范围1.1 包的命名1)命名规则只能包含数字、字母、下划线、小圆点.,但不能用数字开头,也不要使用关键字。2)案例实操demo.class.exec1 //错误,因为原创 2021-12-28 22:29:30 · 349 阅读 · 0 评论 -
Scala 函数式编程-函数高级
Scala 函数式编程-函数高级1、高阶函数在 Scala 中,函数是一等公民。怎么体现的呢?对于一个函数我们可以:定义函数、调用函数object TestFunction { def main(args: Array[String]): Unit = { // 调用函数 foo() } // 定义函数 def foo():Unit = { println("foo...") }}但是其实函数还有更高阶的用法1)函数可以作为值进行传递object TestFunctio原创 2021-12-28 14:58:54 · 305 阅读 · 0 评论 -
Scala 函数式编程-函数基础
Scala 函数式编程1)面向对象编程解决问题,分解对象,行为,属性,然后通过对象的关系以及行为的调用来解决问题。对象:用户行为:登录、连接 JDBC、读取数据库属性:用户名、密码Scala 语言是一个完全面向对象编程语言。万物皆对象对象的本质:对数据和行为的一个封装2)函数式编程解决问题时,将问题分解成一个一个的步骤,将每个步骤进行封装(函数),通过调用这些封装好的步骤,解决问题。例如:请求->用户名、密码->连接 JDBC->读取数据库Scala 语言是一个完全函原创 2021-12-28 14:37:06 · 137 阅读 · 0 评论 -
Scala 流程控制
Scala 流程控制1、分支控制 if-else让程序有选择的的执行,分支控制有三种:单分支、双分支、多分支1.1、单分支1)基本语法if (条件表达式) { 执行代码块}说明:当条件表达式为 ture 时,就会执行{ }的代码。1.2、双分支1)基本语法if (条件表达式) { 执行代码块 1} else { 执行代码块 2}1.3、多分支1)基本语法if (条件表达式 1) { 执行代码块 1}else if (条件表达式 2) { 执行代码块 2} …原创 2021-12-28 00:09:32 · 135 阅读 · 0 评论 -
Scala 运算符
Scala 运算符Scala 运算符的使用和 Java 运算符的使用基本相同,只有个别细节上不同。1、算术运算符1)基本语法运算符运算范例结果+正号+33-负号b=4; -b-4+加5+510-减6-42*乘3*412/除5/51%取模(取余)7%52+字符串相加“He”+”llo”“Hello”(1)对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而原创 2021-12-27 20:33:45 · 257 阅读 · 0 评论 -
Scala 变量和数据类型
Scala 变量和数据类型1、注释Scala 注释使用和 Java 完全一样。注释是一个程序员必须要具有的良好编程习惯。将自己的思想通过注释先整理出来,再用代码去体现。1)基本语法(1)单行注释://(2)多行注释:/* */(3)文档注释:/** * */2) 代码规范(1)使用一次 tab 操作,实现缩进,默认整体向右边移动,用 shift+tab 整体向左移(2)或者使用 ctrl + alt + L 来进行格式化(3)运算符两边习惯性各加一个空格。比如:原创 2021-12-26 22:49:12 · 600 阅读 · 0 评论 -
Scala 入门
Scala 入门1、概述1.1、为什么学习 Scala1)Spark—新一代内存级大数据计算框架,是大数据的重要内容。2)Spark就是使用Scala编写的。因此为了更好的学习Spark, 需要掌握Scala这门语言。3)Spark的兴起,带动Scala语言的发展!● Scala一一Java++➢Scala基于JVM,和Java完全兼容,同样具有跨平台、可移植性好、方便的垃圾回收等特性➢Scala 比Java更加面向对象➢Scala 是一门函数式编程语言● Scala更适合大数据的处理原创 2021-12-26 15:49:44 · 1709 阅读 · 0 评论