Scala
大数据学习与分享
【微信公众号:大数据学习与分享】专注于大数据领域常用技术,如Spark、Hadoop、Hive、HBase、Kafka、Zookeeper等技术的使用、实战技巧、源码解读,语言主要以Java和Scala为主
展开
-
必须要掌握的Scala技术点(五)Scala高阶函数、方法、柯里化、隐式转换
5. 高阶函数 Scala中的高阶函数包含:作为值的函数、匿名函数、闭包、柯里化等,可以把函数作为参数传递给方法或函数。 5.1 作为值的函数 定义函数时格式:val 变量名 = (输入参数类型和个数) => 函数实现和返回值类型和个数。 =:表示将函数赋给一个变量 =>:左面表示输入参数名称、类型和个数,右边表示函数的实现和返回值类型和参数个数 5.2 匿名函数 在Scala中,你不需要给每一个函数命名,没有将函数赋给变量的函数叫做匿名函数 5.3 方法转换为函数 在Scala中,方法和函数是原创 2020-12-08 17:50:29 · 168 阅读 · 0 评论 -
必须要掌握的Scala技术点(四)Scala模式匹配和样例类(case class)
4. 模式匹配和样例类 4.1 模式匹配 Scala有一个十分强大的模式匹配机制,可以应用到很多场合:如替代Java中的switch语句、类型检查等。 并且Scala还提供了样例类,对模式匹配进行了优化,可以快速进行匹配。 // 1. 匹配字符串 import scala.util.Random object Case01 extends App { val arr = Array(1, 2, 3) val i = arr(Random.nextInt(arr.length)) i match原创 2020-12-03 20:24:19 · 183 阅读 · 0 评论 -
必须要掌握的Scala技术点(三)类、对象(伴生对象)、apply和unapply方法、继承和trait
3.1 类 3.1.1 类的定义 Scala中,可以在类中定义类、以在函数中定义函数、可以在类中定义object;可以在函数中定义类,类成员的缺省访问级别是:public //在Scala中,类不用声明为public //Scala源文件中可以包含多个类,所有这些类都具有公有可见性 class Person { //val修饰的变量是只读属性,相当于Java中final修饰的变量,只提供get() val id = "1" //var修饰的变量,提供get()和set() var age:原创 2020-11-30 16:02:03 · 692 阅读 · 3 评论 -
必须要掌握的Scala技术点(二)数组、映射、元组、集合
2.1 数组 import scala.collection.mutable.ArrayBuffer //scala导包比如导入scala.collection.mutable下所有的类:scala.collection.mutable._ object ArrayDemo { def main(args: Array[String]): Unit = { println("======定长数组======") // 初始化一个长度为8的定长数组,所有元素初始化值为0 var a原创 2020-11-09 11:48:56 · 325 阅读 · 0 评论 -
学好Spark必须要掌握的Scala技术点(一)变量、表达式、循环、Option、方法和函数/偏函数
前言 Scala是以JVM为运行环境的面向对象的函数式编程语言,它可以直接访问Java类库并且与Java框架进行交互操作。正如之前所介绍,Spark是用Scala语言编写的,Kafka server端也是,那么深入学习Scala对掌握Spark、Kafka是必备掌握技能。 本篇文章主要介绍,在学习、编写Spark程序时,至少要掌握的Scala语法,多以示例说明。建议在用Scala编写相关功能实现时,边学习、边应用、边摸索以加深对Scala的理解和应用。 1. 变量、表达式、循环、Option、方法和函数 1原创 2020-09-22 20:39:25 · 299 阅读 · 0 评论 -
Scala中的IO操作及ArrayBuffer线程安全问题
通过Scala对文件进行读写操作在实际业务中应用也比较多,这里介绍几种常用的方式,直接上代码: 1.从文件中读取内容 object Main { def loadData(): Array[String] = { var bs: BufferedSource = null var in: InputStream = null try { in = Main.getClass.getClassLoader.getResourceAsStream("data.txt原创 2020-06-16 17:32:13 · 543 阅读 · 0 评论 -
Scala模式匹配中 @ 的含义
@是为了给模式匹配起个变量名,一般格式为:variableName@pattern,示例: val list = List(1, 2, 3, 4, 5, 6) list match { //right其实就代表了一个集合,元素为3,4,5,6 case List(_, _, right@_*) => println(right) case _ => } li...原创 2020-05-04 15:47:49 · 565 阅读 · 0 评论