
scala 随笔
wz_TXWY
qwertyuiiopasdfghjklzxcvm
展开
-
scala 方法调用方式
1. 对象.方法名(参数)2.对象 方法名(参数)//相对1.省略了点.;若单个参数,括号()也可省略eg:List(1,2).:::(List(3,4)) = List(1,2):::(List(3,4)) = List(1,2):::List(3,4)List(1,2).contains(1) = List(1,2) contains(1) = List(1,2) cont...原创 2019-05-15 15:36:34 · 1164 阅读 · 0 评论 -
scala 查找隐式参数时和进行隐式转换时的查找顺序
scala 查找隐式参数时和进行隐式转换时的查找顺序 (看的一些视频上老师说的) 当前作用域-->自身作用域伴生对象--> 相关的类和接口的伴生对象(如继承的类,trait) -->import上下文的隐式转换 开发时 业界主流一般建议直接在自身伴生对象中写隐式的, 不建议import,随着版本的迭代什么的,某些开发者容易搞混在哪查找隐式参数时和进行隐式转换:...原创 2019-09-18 20:47:35 · 507 阅读 · 0 评论 -
scala 构造器 详解 (反编译java)
目录一.主构造器1.主构造器中的参数带有var,【反编译成Java查看】,会生成对应的成员变量及get/set方法,在scala中可使用对象.成员变量 进行修改,获取值.主构造器中的参数带有val,会生成对应的 final成员变量,及get方法,没有set方法,final不允许修改的2.主构造器不带var/val,不会生成对应的成员变量,只是个单纯的形参二.辅助构造器参数不...原创 2019-09-18 14:53:35 · 458 阅读 · 0 评论 -
scala 免安装 和 idea配置
1.idea下载scala插件https://blog.youkuaiyun.com/wz_TXWY/article/details/1008965692.创建project ,选择scala-->idea ,配置scala sdk,之后就可以在idea中开发scala项目了3.进入官网https://www.scala-lang.org/download/,下载zip 包. .m...原创 2019-09-17 17:38:35 · 471 阅读 · 0 评论 -
scala 补充知识
目录1. var temp = List("Hello",1) 可以保存了不同类型的原因 : 类型推断 List[Any] = List(Hello,1)2. 使用Nil 创建空列表List3.可变集合(mutable )和不可变集合(immutable)4.函数的参数列表可以省略的情况: 参数只使用一次,且没嵌套使用 .如 x=>print(x) 省略为pri...原创 2019-09-17 18:27:59 · 286 阅读 · 0 评论 -
scala 函数式编程 foreach, map , flatmap , filter , exists ,sorted ,groupBy ,reduce ,fold
函数式编程我们将来使用Spark/Flink的大量业务代码都会使用到函数式编程。下面的这些操作是学习的重点。遍历(foreach)映射(map)映射扁平化(flatmap)过滤(filter)是否存在(exists)排序(sorted、sortBy、sortWith)分组(groupBy)聚合计算(reduce)折叠(fold)遍历 | foreach之前,学习过...原创 2019-09-16 14:58:29 · 1167 阅读 · 0 评论 -
scala 列表List常用操作
列表常用操作以下是列表常用的操作判断列表是否为空(isEmpty)拼接两个列表(++ :: ::: )获取列表的首个元素(head)和剩余部分(tail)反转列表(reverse)获取前缀(take)、获取后缀(drop)扁平化(flaten)拉链(zip)和拉开(unzip)转换字符串(toString)生成字符串(mkString)并集(union)(合并,跟++...原创 2019-09-16 11:38:30 · 1607 阅读 · 0 评论 -
Scala 数据类型与操作符
数据类型与操作符scala中的类型以及操作符绝大多数和Java一样,我们主要来学习与Java不一样的一些用法scala类型的继承体系数据类型基础类型类型说明Byte8位带符号整数Short16位带符号整数Int32位带符号整数Long64位带符号整数Char16位无符号Unicode字符StringChar类型的序列(字...原创 2019-09-16 10:19:36 · 554 阅读 · 1 评论 -
Scala for循环 原理探寻
Scala for循环基本使用增强型for循环scala基本for循环如下,代码将names遍历并打印包含的名字。val n...转载 2019-09-15 22:08:45 · 343 阅读 · 0 评论 -
scala for循环的几种方式
for循环的几种方式第一种(生成器表达式)i 表示循环的变量, <- 规定好 to 规定i 将会从 1-3 循环, 前后闭合for(i <- 1 to 3){ print(i + " ")} 第二种这种方式和前面的区别在于 i 是从1 到 3-1前闭合后开的范围,和java的arr.length() 类似for(i <- 1 until 3) ...原创 2019-09-15 22:01:58 · 1189 阅读 · 0 评论 -
Scala 方法和函数的区别
方法和函数的区别方法是隶属于类或者对象的,在运行时,它是加载到JVM的方法区中可以将函数对象赋值给一个变量,在运行时,它是加载到JVM的堆内存中函数是一个对象,继承自FunctionN,函数对象有apply,curried,toString,tupled这些方法。方法则没有示例方法无法赋值给变量scala> def add(x:Int,y:Int)=x+yadd: (x: ...原创 2019-09-15 19:09:22 · 460 阅读 · 0 评论 -
scala方法调用方式-总结
方法调用方式在scala中,有以下几种方法调用方式,后缀调用法中缀调用法花括号调用法无括号调用法在后续编写spark、flink程序时,会使用到这些方法调用方式。后缀调用法这种方法与Java没有区别。语法对象名.方法名(参数)示例使用后缀法Math.abs求绝对值参考代码scala> Math.abs(-1)res3: Int = 1中缀调用法语法...原创 2019-09-15 18:56:51 · 1407 阅读 · 0 评论 -
Scala 实现java break和continue单独出现,break和continue一同出现
break和continue单独出现,break和continue一同出现在scala中,类似Java和C++的break/continue关键字被移除了如果一定要使用break/continue,就需要使用scala.util.control包的Break类的breable和break方法。实现break用法导入Breaks包import scala.util.control.B...原创 2019-09-15 17:42:11 · 545 阅读 · 0 评论 -
【scala】getter和setter
类的基本内容要点:0、scala不允许重写(覆盖)getter,setter方法1、scala在定义字段时使用var ,默认生成对应setter和getter方法2、调用了scala的setter方法 对应的方法名称money_=(或即value_$eq)3、调用了scala的gettter方法 对应的方法名称就为字段名称money4、当使用val定义字段时,scala不在提供...原创 2019-05-09 21:07:25 · 878 阅读 · 0 评论 -
scala 模式匹配math-case 与 提取器(Extractor)
看个有意思的题目:object Test { def main(args: Array[String]) { var x = AAA(10) //x =9 //println(x) x match { //case 10 => println("dddddddd") //case n => println(n)...原创 2019-05-17 15:19:35 · 549 阅读 · 0 评论 -
scala ClassTag
1> Mainfest上下文界定1. 在Scala中数组必须是有类型的,如果直接是泛型的话将会报错,这时候引入了Manifest上下文界定,需要一个Mainfest[T]对象,而mainifest[T]有一个隐式值,2. 如果调用makePair(1,2),编译器将定位到隐式的Manifst[Int]并实际上调用makePair(2,3)(intManifest),该方法调用的就...转载 2019-05-17 11:52:52 · 673 阅读 · 0 评论 -
Scala之隐式参数与隐式转换
隐式(implicit)是scala中最有特色也是最困难的一部分,可以说不掌握隐式就不能算是真正掌握了scala。隐式在许多著名的scala项目中有着广泛的应用,如Spark、GeoMesa等。本文就来详细介绍一下scala中隐式的使用。scala中的隐式可以分为三部分内容:隐式参数 隐式转换类型 隐式调用函数 隐式类 (scala2.10+)1.隐式参数如果scala中...转载 2019-05-17 11:25:04 · 228 阅读 · 0 评论 -
Scala case 语句 与偏函数
Scala通过case语句提供了形式简单、功能强大的模式匹配功能。但是也许你不知道,Scala还具有一个与case语句相关的语言特性,那就是:在Scala中,被“{}”包含的一系列case语句可以被看成是一个函数字面量,它可以被用在任何普通的函数字面量适用的地方,例如被当做参数传递。什么是偏函数?它与Case语句有什么关系?在Scala中,偏函数是具有类型PartialFunc...原创 2019-05-17 09:26:49 · 579 阅读 · 0 评论 -
java.lang.NoClassDefFoundError: akka/serialization/BaseSerializer$class
Exception in thread "main" java.lang.NoClassDefFoundError: akka/serialization/BaseSerializer$class at akka.persistence.serialization.SnapshotSerializer.<init>(SnapshotSerializer.scala:31) at ...原创 2019-09-24 17:39:07 · 1358 阅读 · 0 评论