Scala
记录Scala的一些语法特性和注意事项。
Nelson_hehe
人生的奔跑不在于瞬间的爆发,而在于途中的坚持。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Scala总结
本文章是对过去scala学习的一些总结和查缺补漏,希望在总体上对scala有一个认识。一、scala函数式编程特性1.简介在函数式语言中,函数作为一等公民,可以在任何地方定义,在函数内或函数外,可以作为函数的参数和返回值,可以对函数进行组合。2.不变性Scala中提倡使用val定义变量,由于变量值是不可变的,对于值的操作并不是修改原来的值,而是修改新产生的值,原来的值保持不变。...原创 2020-01-31 14:24:10 · 588 阅读 · 0 评论 -
Scala 面向对象知识点总结
一、类1.一个源文件中可以包含多个类,都可以是public级别的,不用声明public。2.类可以通过new来进行实例化,并访问类中的方法和变量。3.类的继承:Scala继承一个基类跟Java很相似, 需要注意以下几点:(1).重写一个非抽象方法必须使用override修饰符。(2).只有主构造函数才可以往基类的构造函数里写参数。(3).在子类中重写超类的抽象方法时,你...原创 2020-01-30 14:56:57 · 451 阅读 · 0 评论 -
Scala option
Scalaoption1.Option简介:Scala 里提供了 scala.Option 类,Option 可以看做一个容器要么有东西(Some),要么什么东西都没有在Scala里Option[T]实际上是一个容器,就像数组或是List一样,你可以把他看成是一个可能有零到一个元素的List。当你的Option里面有东西的时候,这个List的长度是1(也就是 Some),而当你的...原创 2020-01-30 13:24:04 · 698 阅读 · 0 评论 -
scala方法—aggregate
Scala中的aggregate方法这个函数还是比较有意思的,在spark中也会常常用到一、首先举一个计算字符串内字符出现次数的例子://统计字母出现的频率映射def strfreq(str:String):mutable.Map[Char,Int]={ val strlist=str.toList //strlist.aggregate() val countsMa...原创 2019-12-02 20:50:02 · 972 阅读 · 3 评论 -
Scala中"=>"的使用小结
scala中"=>"的使用1.场景一:定义函数表达式2.场景二:函数传名调用(直接将未计算的表达式作为参数传入)Scala的解释器在解析函数参数(function arguments)时有两种方式:①call-by-value: 先计算参数表达式的值,再应用到函数内部;②call-by-name: 将未计算的参数表达式直接应用到函数内部。在进入函数内部前,传值...原创 2019-12-01 20:34:42 · 1303 阅读 · 0 评论 -
Scala集合
Scala集合scala默认采用不可变集合一、集合概述:1.Scala的集合有三大类:序列Seq(有序、线性)、集合set、映射Map(Key->Value),所有的集合都扩展自Iterable特质2.可变分类不可变集合(可以安全的并发访问)【scala.collection.mutable】(1)for循环的1to3生成的是IndexedSeq下的vector...原创 2019-12-01 14:23:23 · 382 阅读 · 0 评论 -
Scala特质(Trait)
特质与类基本类似,Trait是字段和行为的集合。下面来介绍一下特质的构成特点1.字段(1)特质的字段可以是抽象的也可以是具体的(有具体的值)。(2)特质的每一个字段,使用该特质的类都会获得一个字段与之对应,从特质继承来的字段被直接加入到子类中。(3)特质中的抽象字段在具体子类中必须被重写,不需要写override。2.特质的构造顺序(重要)(1)首先调用超类构造器...原创 2019-11-24 17:14:42 · 495 阅读 · 0 评论 -
Scala隐式转换
参考《快学Scala》和其他同学的一些博客隐式转换和隐式参数是Scala的两个重要功能,我们可以利用隐式转换来丰富现有类的功能,以及隐式对象可以自动呼出用于执行转换或其他任务;我们可以提供优雅的类库,对类库的使用者隐藏掉那些枯燥乏味的细节。scala提供了implicit关键字一、隐式类Scala2.10以后提出了隐式类,可以使用implicit声明类,隐式类非常强大,同样可以扩展...原创 2019-11-24 15:51:50 · 915 阅读 · 0 评论 -
Scala尾递归
一、首先来简单介绍一下递归和尾递归1.递归:简单来说就是在函数内部调用函数本身来完成函数体。对于返回值的要求并不很严格。递归的缺点:递归效率比较低,调用次数过多还会出现栈溢出的问题。2.尾递归:尾递归的核心思想:通过参数来传递每一次的调用结果,达到不压栈。它维护着一个迭代器和一个累加器。递归函数的返回值是递归函数表达式其实与循环的思想类似,每次调用此函数(进栈),...原创 2019-11-24 12:14:22 · 1638 阅读 · 0 评论 -
Scala语法小练习(银行小程序)
本篇文章主要是自己练习的一个用Scala编写的小程序一、记录在练习过程中的一些小感受和踩得坑:1.构造函数用this关键字2.定义类与定义类方法的参数不需要定义一个新变量一样Scala中可以用new关键字创建一个新的对象3.Case的用法4.Option的用法(可以当一个集合来用,当做返回值时可以返回None)5.标准输入流 StdIn.readInt()【读取整数的】...原创 2019-11-18 21:46:38 · 921 阅读 · 1 评论
分享