
Scala
Scala学习笔记
fu-jw
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Scala】基础19--函数式编程2
1、偏函数在对符合某个条件,而不是所有情况进行逻辑操作时,使用偏函数是一个不错的选择将包在大括号内的一组case语句封装为函数,我们称之为偏函数,它只对会作用于指定类型的参数或指定范围值的参数实施计算,超出范围的值会忽略(未必会忽略,这取决于你打算怎样处理)偏函数在Scala中是一个特质PartialFunction给你一个集合val list = List(1, 2, 3, 4, ...原创 2020-05-05 23:49:10 · 5140 阅读 · 0 评论 -
【Scala】基础18--模式匹配2
1、对象匹配对象匹配,什么才算是匹配呢?,规则如下:case中对象的unapply方法(对象提取器)返回Some集合则为匹配成功返回none集合则为匹配失败object MatchObject { def main(args: Array[String]): Unit = { // 模式匹配使用: // Square创建对象时先调用apply方法 // 将36.0赋值...转载 2020-05-05 11:05:03 · 5136 阅读 · 0 评论 -
【Scala】基础17--模式匹配1
1、match基本介绍Scala中的模式匹配类似于Java中的switch语法,但是更加强大。模式匹配语法中,采用match关键字声明,每个分支采用case关键字进行声明,当需要匹配时,会从第一个case分支开始,如果匹配成功,那么执行对应的逻辑代码,如果匹配不成功,继续执行下一个分支进行判断。如果所有case都不匹配,那么会执行case _ 分支,类似于Java中default语句。obj...转载 2020-05-05 11:04:29 · 5027 阅读 · 0 评论 -
【Scala】基础16--集合5
1、迭代器通过iterator方法从集合获得一个迭代器,通过while循环和for表达式对集合进行遍历。object IteratorDemo { def main(args: Array[String]): Unit = { val iterator = List(1, 2, 3, 4, 5).iterator // 得到迭代器 /* 这里我们看看iterator...原创 2020-05-03 21:09:15 · 5110 阅读 · 0 评论 -
【Scala】基础15--集合4
1、集合元素的映射-map映射操作要求:请将List(3,5,7) 中的所有元素都 * 2 ,将其结果放到一个新的集合中返回,即返回一个新的List(6,10,14), 请编写程序实现object MapOperateDemo { def main(args: Array[String]): Unit = { val list1 = List(3, 5, 7) //集合 ...原创 2020-05-03 21:08:32 · 5068 阅读 · 0 评论 -
【Scala】基础14--集合3
1、MapJava中的HashMap 是一个散列表(数组+链表),它存储的内容是键值对(key-value)映射,Java中的HashMap是无序的,key不能重复Scala中的Map 和Java类似,也是一个散列表,它存储的内容也是键值对(key-value)映射,Scala中不可变的Map是有序的,可变的Map是无序的Scala中,有可变Map (scala.collection....转载 2020-05-02 23:43:52 · 5037 阅读 · 0 评论 -
【Scala】基础13--集合2
1、列表Scala中的List 和Java List 不一样,在Java中List是一个接口,真正存放数据是ArrayList,而Scala的List可以直接存放数据,就是一个object,默认情况下Scala的List是不可变的,List属于序列Seq。object ListDemo { def main(args: Array[String]): Unit = { //说明...转载 2020-05-02 22:47:57 · 4891 阅读 · 0 评论 -
【Scala】基础12--集合1
1、集合基本介绍Scala同时支持不可变集合和可变集合,不可变集合可以安全的并发访问不可变集合:scala.collection.immutable可变集合: scala.collection.mutableScala默认采用不可变集合,对于几乎所有的集合类,Scala都同时提供了可变(mutable)和不可变(immutable)的版本Scala的集合有三大类:序列Seq、...原创 2020-05-02 22:47:20 · 4998 阅读 · 0 评论 -
【Scala】基础11--隐式转换和隐式值
1、隐式转换1、隐式函数隐式转换函数是以implicit关键字声明的带有单个参数的函数。这种函数将会自动应用,将值从一种类型转换为另一种类型object Scala01 { def main(args: Array[String]): Unit = { val num : Int = 3.5 //?错 高精度->低精度 println(num) }}使用隐...原创 2020-05-01 23:35:13 · 4944 阅读 · 0 评论 -
【Scala】基础10--面向对象5
1、在特质中重写抽象方法特例trait Operate5 { def insert(id : Int)}//说明//1. 如果我们在子特质中重写/实现了一个父特质的抽象方法,但是同时调用super//2. 这时我们的方法不是完全实现,因此需要声明为 abstract override//3. 这时super.insert(id) 的调用就和动态混入顺序有密切关系trait Fi...原创 2020-04-30 23:32:19 · 4923 阅读 · 0 评论 -
【Scala】基础09--面向对象4
1、伴生对象Scala语言是完全面向对象(万物皆对象)的语言,所以并没有静态的操作(即在Scala中没有静态的概念)。但是为了能够和Java语言交互(因为Java中有静态概念),就产生了一种特殊的对象来模拟类对象,我们称之为类的 伴生对象。这个类的所有静态内容都可以放置在它的伴生对象中声明和调用说明: Java中静态方法并不是通过对象调用的,而是通过类对象调用的,所以静态操作并不是面向对象的...原创 2020-04-30 23:31:49 · 4920 阅读 · 0 评论 -
【Scala】基础08--面向对象3
面向对象-继承class 子类名 extends 父类名 { 类体 }1、优点代码的复用性提高代码的扩展性和维护性提高当我们修改父类时,对应的子类就会继承相应的方法和属性注意:子类继承了所有的属性,只是私有的属性不能直接访问,需要通过公共的方法去访问//说明//1. 在scala中,子类继承了父类的所有属性//2. 但是private的属性和方法无法访问obj...原创 2020-04-29 23:02:47 · 4881 阅读 · 0 评论 -
【Scala】基础07--面向对象2
和Java一样,Scala中管理项目可以使用包,但Scala中的包的功能更加强大,使用也相对复杂些1、Scala包的作用区分相同名字的类当类很多时,可以很好的管理类控制访问范围可以对类的功能进行扩展注意:Scala中包名和源码所在的系统文件目录结构可以不一致,但是编译后的字节码文件路径和包名会保持一致(这个工作由编译器完成)包名和源码所在的系统文件目录结构一致时包名和...原创 2020-04-29 23:02:12 · 4994 阅读 · 0 评论 -
【Scala】基础05--函数式编程1
“函数式编程"是一种"编程范式”(programming paradigm)它属于"结构化编程"的一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用函数式编程中,将函数也当做数据类型,因此可以接受函数当作输入(参数)和输出(返回值)函数式编程中,最重要的就是函数1、函数定义函数:为完成某一功能的程序指令(语句)的集合。def 函数名 ([参数名: 参数类型], ...)...原创 2020-04-27 23:34:01 · 4981 阅读 · 0 评论 -
【Scala】基础06--面向对象1
1、类与对象张老太养了只猫猫:一只名字叫小白,今年3岁,白色。还有一只叫小花,今年10岁,花色。请编写一个程序,当用户输入小猫的名字时,就显示该猫的名字,年龄,颜色。如果用户输入的小猫名错误,则显示 张老太没有这只猫猫。源代码:class Cat { //定义/声明三个属性 //说明 //1. 当我们声明了 var name :String时, 在底层对应 private nam...原创 2020-04-27 23:29:55 · 4926 阅读 · 0 评论 -
【Scala】基础04--程序流程控制
Scala语言中控制结构和Java语言中的控制结构基本相同,在不考虑特殊应用场景的情况下,代码书写方式以及理解方式都没有太大的区别1、顺序控制程序从上到下逐行地执行,中间没有任何判断和跳转2、分支控制if-else让程序有选择的的执行,分支控制有三种:1. 单分支if (条件表达式) { 执行代码块}//说明:当条件表达式为ture 时,就会执行 { } 的代码2. 双分...原创 2020-04-25 15:56:14 · 4818 阅读 · 0 评论 -
【Scala】基础03--运算符
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等1、算术运算符算术运算符(arithmetic)是对数值类型的变量进行运算的,在Scala程序中使用的非常多注意:1、对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。 例如:var x : Int = 10/3 ,结果是 32、当对一个数取模时,可以等价 a%b=a-a/b*b ,...原创 2020-04-25 15:55:30 · 4869 阅读 · 0 评论 -
【Scala】基础02--变量及数据类型
1、变量概念变量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值)。声明var | val 变量名 [: 变量类型] = 变量值def main(args: Array[String]): Unit = { var name: String = "fjw" var age: Int = ...原创 2020-04-25 15:54:36 · 4951 阅读 · 0 评论 -
【Scala】基础01--概述
1、why is Scala语言?1、Spark—新一代内存级大数据计算框架,是大数据的重要内容。2、Spark就是使用Scala编写的。因此 为了更好的学习Spark, 需要掌握Scala这门语言3、Scala 是 Scalable Language 的简写,是一门多范式(范式/编程方式[面向对象/函数式编程])的编程语言4、联邦理工学院洛桑(EPFL)的Martin Odersky于...原创 2020-04-25 15:53:15 · 4804 阅读 · 0 评论