
scala学习随笔
CatherineHuangTT
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Scala中的循环
一、for循环package day1object For { def main(args: Array[String]): Unit = { //for循环语法结构:for (i <- 表达式/数组/集合) ////for(i <- 表达式),表达式1 to 10返回一个Range(区间),每次循环将区间中的一个值赋给i for (i <- 1 to 5)原创 2017-11-08 22:27:52 · 1016 阅读 · 0 评论 -
Scala之下界
/*下界 >: 去公安部们身份证,儿子的身份证父亲当然可以拿走 */class Farther(val name:String)class Child(name:String) extends Farther(name:String)object GetIDCard { def getIdCard[R >: Child](person:R): Unit ={ pri转载 2017-11-30 23:51:20 · 427 阅读 · 0 评论 -
Scala之视图边界
/*视图边界 A <% B左边的类型是右边类型或者是其子类。如果不是,左边类型会隐士转换为右边的类型 */class Person(var name:String){ def sayHello = println("hello my name is "+name); def makeFirends(p:Person): Unit ={ sayHello转载 2017-11-30 23:37:11 · 695 阅读 · 0 评论 -
Scala之逆变
class Masterclass Professional extends Masterclass Card[-T](val name:String) //支持逆变,父类来了当然可以class Workerobject Test { def enterMeet(card: Card[Professional]): Unit = { println("welcome to转载 2017-11-30 23:32:14 · 388 阅读 · 0 评论 -
Scala之协变
package day3.lesson07class Masterclass Professional extends Masterclass Card[+T](val name:String) //支持协变 子类来了也可以class Workerobject Test { def enterMeet(card: Card[Master]): Unit = { pr转载 2017-11-30 23:19:17 · 349 阅读 · 0 评论 -
scala入门初介
1.scala编写的大数据工具kafka、flink、spark2.scala的版本目前最新的版本:2.12.2最新且最稳定的版本:2.11.8 目前常用的是:2.10.xscala的官网:http://www.scala-lang.org/3.scala和Java的比较这里拿wordcount的例子来比较(1)Java编写的wordcount:原创 2017-11-04 16:36:06 · 605 阅读 · 0 评论 -
scala编译器的安装
1.安装JDK因为Scala是运行在JVM平台上的,所以安装Scala之前要安装JDK2 安装Scala(1)Windows安装Scala编译器访问Scala官网http://www.scala-lang.org/下载Scala编译器安装包,目前最新版本是2.12.x,但是目前大多数的框架都是用2.11.x编写开发的,Spark2.x使用的就是2.11.x,所以这里推荐2.11.x转载 2017-11-04 17:04:37 · 399 阅读 · 0 评论 -
变量的声明
变量的声明方式:object Variable { def main(args: Array[String]) { //使用val定义的变量值是不可变的,相当于java里用final修饰的变量 val i = 1 //使用var定义的变量是可变得,但是Scala在使用的时候常用val var s = "hello" //Scala编译器会自动推断变量转载 2017-11-04 17:18:21 · 306 阅读 · 0 评论 -
scala常用的类型
scala常用类型1.scala的7种数值类型Byte、Char、Short、Int、Float、Double2.其他的类型Boolean以上两大类型都是属于scala包中的,但是String是属于java.lang.String注:Scala中的类型和Java中的类型是有区别的,在scala中并没有刻意的区分基本数据类型和引用类型,可以对数字执行方法;转载 2017-11-04 22:13:43 · 1014 阅读 · 0 评论 -
Scala算术和操作符重载
Sala中的运算符和Java中的运算符作用是相同的,但是Scala中的运算符其实是方法 val a = 1 val b = 2 a + b //调用时候的简写,这里的+是方法名 a.+(b)scala中对方法的命名没有Java那么严格,Scala中可以使用非字母和数字来给方法命名,几乎可以使用任何符号来给方法命名a 方法 ba.方法(b)转载 2017-11-04 22:58:43 · 3246 阅读 · 0 评论 -
Scala的条件表达式
(1)条件表达式的定义 (2)条件表达式是有返回值的 (3)条件表达式的返回类型 注:如果else前的返回值和else后的返回值的返回类型不一致,那么返回的类型就是Any; 如果else之后的返回值为空,那么返回的值的类型就是AnyVal; 如果else之前的返回值为空,就会报错; 可以将() {}当做是无有用值的占位符,用Unit表示;原创 2017-11-05 23:26:38 · 2410 阅读 · 0 评论 -
Scala块表达式
object BlockExpression { def main(args:Array[String]){ val x = 0 val y = 1 //在scala中{}中可包含一系列表达式,块中最后一个【表达式】的值就是块的值 //下面就是两个块表达式 val result = { //块1 if (x <= 0){ -1原创 2017-11-06 09:00:11 · 1192 阅读 · 0 评论 -
Scala中的集合
Scala的集合有三大类:序列Seq、集Set、映射Map,所有的集合都扩展自Iterable特质,在Scala中集合有可变(mutable)和不可变(immutable)两种类型,immutable类型的集合初始化后就不能改变了(注意与val修饰的变量进行区别)1. 序列不可变的序列import scala.collection.immutable._在Scala中列表要转载 2017-11-09 22:58:44 · 646 阅读 · 0 评论 -
Scala中的元组
映射是K/V对偶的集合,对偶是元组的最简单形式,元组可以装着多个不同类型的值。1. 创建元组 2. 获取元组中的值 3. 将对偶的集合转换成映射 4. 拉链操作zip命令可以将多个值绑定在一起 注意:如果两个数组的元素个数不一致,拉链操作后生成的数组的长度为较小的那个数组的元素个数转载 2017-11-09 22:55:56 · 625 阅读 · 0 评论 -
Scala中的映射
在Scala中,把哈希表这种数据结构叫做映射1. 构建映射 2. 获取和修改映射中的值 好用的getOrElse 注意:在Scala中,有两种Map,一个是immutable包下的Map,该Map中的内容不可变;另一个是mutable包下的Map,该Map中的内容可变例子: 注意:通常我们在创建一个集合是会用val这个关键字修饰一个变量(相当于jav转载 2017-11-09 22:47:00 · 639 阅读 · 0 评论 -
Scala中的数组
1.定长数组和变长数组import scala.collection.mutable.ArrayBufferobject ArrayTest { def main(args: Array[String]) { //初始化一个长度为8的定长数组,其所有元素均为0 val arr1 = new Array[Int](8) //直接打印定长数组,内容为数组的ha转载 2017-11-09 21:55:34 · 491 阅读 · 0 评论 -
Scala中的方法和函数
1.定义方法 方法的返回值类型可以不写,编译器可以自动推断出来,但是对于递归函数,必须指定返回类型2. 定义函数 3. 方法和函数的区别在函数式编程语言中,函数是“头等公民”,它可以像任何其他数据类型一样被传递和操作案例:首先定义一个方法,再定义一个函数,然后将函数传递到方法里面 object MethodAndFunctionTest { //转载 2017-11-08 23:04:05 · 574 阅读 · 0 评论 -
scala的输入输出函数
package day1import scala.io.StdInobject InAndOut { def main(args: Array[String]): Unit = { //输入函数 /** * readLine函数从控制台读取一行输入,可以带一个参数作为提示字符串 * 读取数字:readInt,readDouble,readByte原创 2017-11-08 23:01:07 · 3433 阅读 · 0 评论 -
Scala之上界
//上界 <:class Pair[T <: Comparable[T]] { def shuishuai(first:T,second:T):T={ if(first.compareTo(second)<0) first else second }}object Test{ def main(args: Array[String]): Unit = {转载 2017-11-30 23:52:03 · 528 阅读 · 0 评论