08 2019 档案
摘要:Scala的集合体系结构 // Scala中的集合体系主要包括:Iterable、Seq、Set、Map。其中Iterable是所有集合trait的根trai。这个结构与Java的集合体系非常相似。 // Scala中的集合是分成可变和不可变两类集合的,其中可变集合就是说,集合的元素可以动态修改,而
阅读全文
摘要:将函数赋值给变量 // Scala中的函数是一等公民,可以独立定义,独立存在,而且可以直接将函数作为值赋值给变量 // Scala的语法规定,将函数赋值给变量时,必须在函数后面加上空格和下划线 def sayHello(name: String) { println("Hello, " + name
阅读全文
摘要:将函数赋值给变量 // Scala中的函数是一等公民,可以独立定义,独立存在,而且可以直接将函数作为值赋值给变量 // Scala的语法规定,将函数赋值给变量时,必须在函数后面加上空格和下划线 def sayHello(name: String) { println("Hello, " + name
阅读全文
摘要:将trait作为接口使用 // Scala中的Triat是一种特殊的概念 // 首先我们可以将Trait作为接口来使用,此时的Triat就与Java中的接口非常类似 // 在triat中可以定义抽象方法,就与抽象类中的抽象方法一样,只要不给出方法的具体实现即可 // 类可以使用extends关键字继
阅读全文
摘要:extends关键字 // Scala中,让子类继承父类,与Java一样,也是使用extends关键字 // 继承就代表,子类可以从父类继承父类的field和method;然后子类可以在自己内部放入父类所没有,子类特有的field和method;使用继承可以有效复用代码 // 子类可以覆盖父类的fi
阅读全文
摘要:此对象非彼java bean对象 是scala object的对象 Object // object,相当于class的单个实例,通常在里面放一些静态的field或者method // 第一次调用object的方法时,就会执行object的constructor,也就是object内部不在metho
阅读全文
摘要:定义一个简单的类 // 定义类,包含field以及方法 class HelloWorld { private var name = "leo" def sayHello() { print("Hello, " + name) } def getName = name } // 创建类的对象,并调用其
阅读全文
摘要:创建Map // 创建一个不可变的Map val ages = Map("Leo" -> 30, "Jen" -> 25, "Jack" -> 23) ages("Leo") = 31 // 创建一个可变的Map val ages = scala.collection.mutable.Map("Le
阅读全文
摘要:移除第一个负数之后的所有负数 // 构建数组 val a = ArrayBuffer[Int]() a += (1, 2, 3, 4, 5, -1, -3, -5, -9) // 每发现一个第一个负数之后的负数,就进行移除,性能较差,多次移动数组 var foundFirstNegative = f
阅读全文
摘要:ArrayBuffer 在Scala中,如果需要类似于Java中的ArrayList这种长度可变的集合类,则可以使用ArrayBuffer。 // 如果不想每次都使用全限定名,则可以预先导入ArrayBuffer类 import scala.collection.mutable.ArrayBuffe
阅读全文
摘要:使用yield和函数式编程转换数组 // 对Array进行转换,获取的还是Array val a = Array(1, 2, 3, 4, 5) val a2 = for (ele <- a) yield ele * ele // 对ArrayBuffer进行转换,获取的还是ArrayBuffer v
阅读全文
摘要:Scala 过程 在Scala中,定义函数时,如果函数体直接包裹在了花括号里面,而没有使用=连接,则函数的返回值类型就是Unit。这样的函数就被称之为过程。过程通常用于不需要返回值的函数。 过程还有一种写法,就是将函数的返回值类型定义为Unit。 def sayHello(name: String)
阅读全文
摘要:Scala 变长参数 在Scala中,有时我们需要将函数定义为参数个数可变的形式,则此时可以使用变长参数定义函数。 def sum(nums: Int*) = { var res = 0 for (num <- nums) res += num res } sum(1, 2, 3, 4, 5) 使用
阅读全文
摘要:Scala 默认参数 在Scala中,有时我们调用某些函数时,不希望给出参数的具体值,而希望使用参数自身默认的值,此时就定义在定义函数时使用默认参数。 def sayHello(firstName: String, middleName: String = "William", lastName:
阅读全文
摘要:函数的定义与调用 在Scala中定义函数时,需要定义函数的函数名、参数、函数体。 我们的第一个函数如下所示: def sayHello(name: String, age: Int) = { if (age > 18) { printf("hi %s, you are a big boy\n", n
阅读全文
摘要:Scala if表达式 ·if表达式的定义:在Scala中,if表达式是有值的,就是if或者else中最后一行语句返回的值。 ·例如,val age = 30; if (age > 18) 1 else 0 ·可以将if表达式赋予一个变量,例如,val isAdult = if (age > 18)
阅读全文
摘要:Scala解释器的使用 ·REPL:Read(取值)-> Evaluation(求值)-> Print(打印)-> Loop(循环)。scala解释器也被称为REPL,会快速编译scala代码为字节码,然后交给JVM来执行。 ·计算表达式:在scala>命令行内,键入scala代码,解释器会直接返回
阅读全文
摘要:Scala下载安装地址:https://www.scala-lang.org/download/ 。windows版本的安装包是scala-2.12.8.msi。直接滑动到网页最下面,下载对应的系统的文件解压就可以了. 注意:安装scala之前需要先安装JAVA环境 ·使用下载下来的安装包安装Sca
阅读全文
摘要:1.下载二进制的Flink,根据你喜欢的Hadoop/Scala版本选择对应的Flink版本。 https://flink.apache.org/downloads.html2.选择存放目录 解压 flink-1.7.2-bin-hadoop28-scala_2.11.tar 存放目录: /usr/
阅读全文