
Scala
柯基的屁股敲可爱(๑• . •๑)
Let everything go
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Scala基础语法20_泛型
通俗的讲,比如需要定义一个函数,函数的参数可以接受任意类型。我们不可能一一列举所有的参数类型重载函数。那么程序引入了一个称之为泛型的东西,这个类型可以代表任意的数据类型。例如List,在创建List时,可以传入整形、字符串、浮点数等等任意类型。那是因为List在类定义时引用了泛型。package day04import day04.ClothesEnum.ClothesEnum...原创 2020-02-04 19:42:08 · 145 阅读 · 0 评论 -
Scala基础语法19_implicit
隐式(implicit)详解思考:我们调用别人的框架,发现少了一些方法,需要添加,但是让别人为你一个人添加是不可能的。比如使用java.io.File读取文件非常的繁琐,能不能让Oracle公司给我们再添加一个read方法,直接返回文件的所有内容,不可能滴。掌握implicit的用法是阅读spark源码的基础,也是学习Scala其它的开源框架的关键,implicit可分为:*...原创 2020-02-04 19:41:48 · 160 阅读 · 0 评论 -
Scala基础语法18_Master 和 worker通信
MessageProtocol.scalapackage cn.sheep.spark// worker --> master//worker向master注册自己的信息case class RegisterWorkerInfo(id: String,core: Int,ram: Int)//worker 给 master发送心跳信息case class HeartBe...原创 2020-02-02 11:12:32 · 383 阅读 · 0 评论 -
Scala基础语法17_回顾
Akka 开发高并发的一个工具包Actor(更多应用可以去Actor官网文档) Actor和Actor可以相互通信,通信的方式是通过传递消息(邮件) ActorSystem 的作用其实是创建、管理Actor Actor和Actor不能直接通信,是通过Actor ActorRef对象进行通信的 每个Actor都拥有一个属于自...原创 2020-02-02 11:12:11 · 112 阅读 · 0 评论 -
Scala基础语法16_案例基于Actor的聊天模型
Edu360Server.scalapackage cn.sheep.robotimport akka.actor.{Actor, ActorRef, ActorSystem, Props}import com.typesafe.config.ConfigFactoryclass Edu360Server extends Actor{ override def receiv...原创 2020-02-02 11:10:32 · 210 阅读 · 0 评论 -
Scala基础语法15_ping_pong
A和B发消息,A要持有B的ActorRef引用。LongActor.scalapackage cn.sheep.actorimport akka.actor.{Actor, ActorRef}class LongActor(val fg: ActorRef) extends Actor{ //接受消息 override def receive: Receive = { ...原创 2020-02-02 11:10:13 · 168 阅读 · 0 评论 -
Scala基础语法14_helloActor
在main下面的scala目录下创建一个包(好习惯:所有的代码分包放)自己给自己发消息怎么样获得一个Actor呢? 首先得有一个类,我们定义一个helloActor类,让他继承Actor,导包快捷键Alt+Enter,control+ i 实现方法。然后创建一个ActorRef的引用。ActorRef --》ActorSystem把光标放在单词上 control + b ...原创 2020-02-02 11:09:46 · 154 阅读 · 0 评论 -
Scala基础语法13_Hello Actor环境配置
自己给自己发消息。要使用maven构建工程了,不是Scala了首先配置maven环境。从官网上下载maven :https://maven.apache.org/download.cgi 解压这里下载的是 apache-maven-3.6.3-bin.zip然后进行环境变量的配置。配置maven打开conf 目录下的settings在settings.xml中...原创 2020-02-02 11:09:24 · 190 阅读 · 0 评论 -
Scala基础语法12_Actor工作机制
ActorRef相当于Actor的代理(引用)。在创建ActorRef 时会隐式创建一个分发器(Dispatcher Message),负责将消息分发至MailBox中。A要想和B发消息,首先要拿到B的ActorRef...原创 2020-02-02 11:08:53 · 179 阅读 · 0 评论 -
Scala基础语法11_Akka并发编程模型
具体内容可以取Akka官网。Akka介绍: 写并发程序很难,程序员不得不处理线程、锁和竞态条件等等,这个过程很容易出错,而且会导致程序代码难以阅读、测试和维护。Akka是 JVM平台上构建高并发、分布式和容错应用的工具包和运行时。Akka 用 Scala语言写成,同时提供了Scala 和 Java 的开发接口。Akka中的Actor 模型Akka处理并发的方法基于Actor模型,在...原创 2020-02-02 11:08:29 · 199 阅读 · 0 评论 -
Scala基础语法11_模式匹配
package day03case class SendHeartBeat(id: String, time: Long)case object CheckOutWorker/** * 模式匹配 match case * 一旦一个case匹配上了,就不会再往下匹配了 */object ScalaMatchCase { def main(args: Array[Stri...原创 2020-02-02 11:07:49 · 167 阅读 · 0 评论 -
Scala基础语法10_样例类和样例对象
package day03/** * 使用case修饰的类,支持模式匹配,默认实现了serializable接口 * * 样例类: case class 类名(属性....) * 类名的定义必须是驼峰式。属性的名称第一个字母小写。 * */case class CaseTest(sender: String,messageContent: String)/** * ...原创 2020-02-02 11:07:29 · 168 阅读 · 0 评论 -
Scala基础语法9_type关键字
type关键字是用来定义一种类型。跟取别名有点类似。package day03trait StudentTrait { type T def learn(s: T) = { println(s) }}package day03object Student1 extends StudentTrait{ override type T = Stri...原创 2020-02-01 09:50:27 · 362 阅读 · 0 评论 -
Scala基础语法8_抽象类
在Scala中,使用abstract修饰的类称为抽象类,在抽象类中可以定义属性、未实现的方法和具体实现的方法。package day03abstract class AbsClass { def eat(food: String): String def swimming(style: String) ={ println(s"$style 这么游") }}...原创 2020-02-01 09:50:15 · 147 阅读 · 0 评论 -
Scala基础语法7_特质
特质(interface):快捷键:control+I Control + Ocontrol + I 特质中有方法未实现,快捷键可以在继承该特质的对象或class(类)中实现该方法control + O 在对象中或者类中实现特质的方法重写package day03/** * 特质(interface) * 在Scala中特质中可以定义有实现的方法,也可以定义...原创 2020-02-01 09:49:52 · 242 阅读 · 0 评论 -
Scala基础语法6_并行化集合
foldLeft方法不会加多次而aggregate和fold一样会被拆分累加多次,类似下面原创 2020-02-01 09:49:33 · 121 阅读 · 0 评论 -
Scala基础语法5_面向对象
在scala中的object是一个单例对象,也就是编译后构造器是私有的,没办法new,object对象不能带参数object 中定义的成员变量 和方法都是静态的可以通过对象名.方法 或者 对象名.成员变量object 被编译后也是一个class文件,字节码文件/** * 在Scala中定义类用class,这个类默认有一个空参构造器 * 定义在类名称后面的构造器叫主构造器...原创 2020-02-01 09:49:22 · 106 阅读 · 0 评论 -
回顾1
/** * 数组 定长数组Array 变长数组ArrayBuffer * 集合 * 可变集合 * 不可变集合 * List => 长度和内容都不可变 * 思考: var list = List(1,3,4)会变。但和上面的变的原理不同。 * ...原创 2020-02-01 09:47:36 · 85 阅读 · 0 评论 -
Scala基础语法4_集合
集合地使用Scala的集合有三大类:序列Seq、集Set、映射Map,所有的集合都扩展自Iterable特质,在Scala中集合有可变(mutable)和不可变(immutable)两种类型,immutable类型的集合初始化后就不能改变了(注意与val修饰的变量进行区别)可变集合在scala下的collection下的mutable包里面。在交互式窗口中可以看到。例如:进入sca...原创 2020-02-01 09:48:56 · 149 阅读 · 0 评论 -
Scala基础语法3
数组的定义//数组的定义,定义一个长度固定的数组,内容可变交互式窗口中:1.val arr = new Array[Int](3) //括号里放的是长度arr(0) = 100 改变了内容2.val arr = Array[Int](1,3,4,7) //括号里放的是具体的内容/** * 数组为什么不用new ,其实这里面隐藏地调用了apply...原创 2020-02-01 09:48:29 · 153 阅读 · 0 评论 -
Scala基础语法2
函数的传值调用和传名调用/*** * 传值调用 和 传名调用 * 函数可以作为参数传递到方法里面 */package day01object callByname { var money = 100 def huaQian(): Unit ={ money = money - 5; } def shuQian(): Int ={ huaQian...原创 2020-02-01 09:47:54 · 137 阅读 · 0 评论 -
Scala基础语法1
参考的视频教程见:https://www.bilibili.com/video/av33447780?p=34Scala 和 Java 一样,有7中数值类型Byte、Char、Short、Int、Long、Float 和 Double(无包装类型)和 Boolean、Unit类型。注意:Unit表示无值,和其他语言中void一样。用作不返回任何结果的方法的结果类型。Unit只有一个是实例值...原创 2020-02-01 09:46:21 · 149 阅读 · 0 评论