
scala
文章平均质量分 63
scala学习分享
勤奋的ls丶
这个作者很懒,什么都没留下…
展开
-
Scala之隐式转换与泛型
一、隐式转换隐式转换可以在不需改任何代码的情况下,扩展某个类的功能。实际的应用场景 是对于老旧的代码添加功能,如果直接修改源代码 很容易出现未知的bug,推荐使用隐式转换,自定义一个新的类 然后把需要添加功能的类隐式转换为新创建的类。 def main(args: Array[String]): Unit = { // 完成隐式转换 需要添加隐式函数 // 将当前作用域的所有int值 隐式转换为MyRichInt类 implicit def chang...原创 2022-01-23 20:02:51 · 574 阅读 · 0 评论 -
Scala之异常
java处理异常(1)Java语言按照try—catch—finally的方式来处理异常(2)不管有没有异常捕获,都会执行finally,因此通常可以在finally代码块中释放资源。(3)可以有多个catch,分别捕获对应的异常,这时需要把范围小的异常类写在前面,把范围大的异常类写在后面,否则编译错误。Scala处理异常(1)将代码封装在try块中。在try块之后使用了一个catch处理程序来捕获异常。如果发生任何异常,catch处理程序将处理它,程序将不会异常终止。(2)Scal原创 2022-02-08 18:16:15 · 666 阅读 · 1 评论 -
Scala之模式匹配
目录一、基本语法二、模式守卫三、匹配类型四、偏函数模式匹配一、基本语法模式匹配语法中,采用match关键字声明,每个分支采用case关键字进行声明,当需要匹配时,会从第一个case分支开始,如果匹配成功,那么执行对应的逻辑代码,如果匹配不成功,继续执行下一个分支进行判断。如果所有case都不匹配,那么会执行case _分支。// 模式匹配的基础语法 val a:Int = 10 val b:Int = 20 var c:Char = '+...原创 2022-01-23 19:37:32 · 312 阅读 · 0 评论 -
Scala之集合函数
目录一、基本操作二、衍生集合三、初级函数四、高级函数五、wordcount案例一、基本操作(1)获取集合长度(2)获取集合大小(3)循环遍历(4)迭代器(5)生成字符串(6)是否包含 def main(args: Array[String]): Unit = { val list: List[Int] = List(1, 2, 3, 4) val set: Set[Int] = Set(2, 4, 6, 8) //获取集合长度原创 2022-01-22 22:06:17 · 821 阅读 · 0 评论 -
Scala之集合
一、集合简介(1)Scala的集合有三大类:序列Seq、集Set、映射Map,所有的集合都扩展自Iterable特质。(2)对于几乎所有的集合类,Scala都同时提供了可变和不可变的版本,分别位于以下两个包。不可变集合:scala.collection.immutable可变集合: scala.collection.mutable(3)不可变集合,就是指该集合对象不可修改,每次修改就会返回一个新对象,而不会对原对象进行修改。类似于java中的String对象(4)可变集合,就是这个.原创 2022-01-22 20:24:03 · 1217 阅读 · 0 评论 -
Scala之类型
一、类型检查和转换 (1)obj.isInstanceOf[T]:判断obj是不是T类型。(2)obj.asInstanceOf[T]:将obj强转成T类型。(3)classOf获取类模板。def main(args: Array[String]): Unit = { // 判断对象的类型 以及转换对象的类型 // 只有多态会使用到 val person1: Person = new Student person1.say...原创 2022-01-20 20:49:56 · 451 阅读 · 0 评论 -
Scala之特质
目录一、特质总述二、特质语法三、基本语法四、特质叠加五、特质自身类型六、特质与抽象类一、特质总述Scala语言中,采用特质trait(特征)来代替接口的概念,也就是说,多个类具有相同的特质(特征)时,就可以将这个特质(特征)独立出来,采用关键字trait声明。Scala中的trait中即可以有抽象属性和方法,也可以有具体的属性和方法,一个类可以混入(mixin)多个特质。这种感觉类似于Java中的抽象类。Scala引入tr...原创 2022-01-20 20:42:28 · 1278 阅读 · 0 评论 -
Scala之类与对象(单例、apply方法)
目录一、类二、属性三、单例对象(伴生对象)四、apply方法五、单例模式的实现一、类语法:[修饰符] class 类名 {类体} (1)Scala语法中默认就是public(2)一个Scala源文件可以包含多个类class stu {}二、属性属性是类的一个组成部分语法:[修饰符] var|val 属性名称 [:类型] = 属性值注:Bean属性(@BeanPropetry),可以自动生成规范的setXxx/getXxx方法原创 2022-01-20 19:55:27 · 759 阅读 · 0 评论 -
Scala之抽象以及多态举例
抽象的语法:(1)定义抽象类:abstract class Animal{} //通过abstract关键字标记抽象类(2)定义抽象属性:val|var name:String //一个属性没有初始化,就是抽象属性(3)定义抽象方法:def hello():String //只声明而没有实现的方法,就是抽象方法抽象类举例 abstract class animal{ val name:String val age:Int def test(name:String原创 2022-01-20 19:13:47 · 408 阅读 · 0 评论 -
Scala之继承
语法:class 子类名 extends 父类名 { 类体 }(1)子类继承父类的属性和方法(2)scala是单继承注意事项:1.继承的子类能够直接使用父类的属性和方法2.继承是运行父类的构造器3.在运行子类的主构造器之前会先运行父类的主构造器4.继承的本质是在类声明中单独继承一个父类的构造器5.在继承父类的有参构造器的时候,需要保证子类的主构造器参数要多于继承的构造器,并且名字是相同的class Person(){ println("父类的主构造器").原创 2022-01-20 16:06:41 · 1572 阅读 · 0 评论 -
Scala之封装
一、java封装与scala封装封装就是把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。Java封装操作如下,(1)将属性进行私有化(2)提供一个公共的set方法,用于对属性赋值(3)提供一个公共的get方法,用于获取属性的值Scala中的public属性,底层实际为private,并通过get方法(obj.field())和set方法(obj.field_=(value))对其...原创 2022-01-18 21:02:54 · 902 阅读 · 0 评论 -
Scala之包package
一、包的命名1.规则只能包含数字、字母、下划线、小圆点.,但不能用数字开头,不能使用关键字。2.命名规范com.公司名.项目名.业务模块名二、包语句1.与Java的包管理风格相同,每个源文件一个包package com.hpu.exe01.demo042.通过嵌套的风格表示层级关系(1)一个源文件中可以声明多个package(2)子包中的类可以直接访问父包中的内容,而无需导包package com{ package hpu{...原创 2022-01-18 20:41:45 · 569 阅读 · 0 评论 -
Scala之函数
目录一、函数二、函数和方法的区别三、函数的定义格式四、函数的参数五、函数至简原则六、高阶函数七、匿名函数八、函数柯里化&闭包九、递归十、控制抽象十一、惰性函数一、函数def hello(x:Int,y:Int): Int ={ x + y}从左到右一次为定义函数关键字 函数名 参数名 参数类型 返回值类型 第二行为函数体二、函数和方法的区别(1)为完成某一功能的程序语句的集合,称为函数。(2)类中的函数称之方法。原创 2022-01-18 20:21:55 · 179 阅读 · 0 评论 -
Scala之流程控制语句
一、分支控制语句——if else基本语法单分支if (条件表达式) { 执行代码块} 双分支if (条件表达式) { 执行代码块1} else {执行代码块2}多分支if (条件表达式1) { 执行代码块1}else if (条件表达式2) { 执行代码块2} ……else { 执行代码块n}//嵌套if(){if(){}else{} }注://Scala中if else表达式其实是有返回值的...原创 2022-01-18 18:53:50 · 492 阅读 · 0 评论 -
Scala之运算符
目录一、scala运算符本质二、算术运算符三、逻辑运算符四、关系运算符注:scala ==与equals区别五、赋值运算符六、位运算符一、scala运算符本质在Scala中其实是没有运算符的,所有运算符都是方法。1)当调用对象的方法时,点.可以省略2)如果函数参数只有一个,或者没有参数,()可以省略object test01 { def main(args: Array[String]): Unit = {...原创 2022-01-15 16:31:32 · 370 阅读 · 0 评论 -
Scala之变量与数据类型
目录一、变量与常量二、标识符注:scala关键字三、字符串四、键盘输入五、数据类型1.整数类型2.浮点类型3.字符类型4.布尔类型5.Unit类型、Null类型和Nothing类型六、类型转换1.数值类型自动转换2.强制类型转换3.数值类型和String类型间转换一、变量与常量var 变量名 [: 变量类型]= 初始值 例:var i:Int = 10val 常量名 [: 常量类型] = 初始值 例...原创 2022-01-14 20:48:23 · 523 阅读 · 0 评论 -
Scala简介
一、什么是scalaScala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言、并集成面象对象编程的各种特性。Scala将面向对象和函数式编程结合成一种简洁的高级语言。Scala的静态类型有助于避免复杂应用程序中的错误,它的JVM和JavaScript运行时让你可以轻松地访问庞大的库生态系统来构建高性能系统。联邦理工学院洛桑(EPFL)的Martin Odersky于2001年基于Funnel的工作开始设计Scala。Funnel...原创 2022-01-14 18:20:06 · 3967 阅读 · 0 评论