D26 Scala增强
Scala重点语法整理
def functionName ([list of parameters]):[return type]={
function body{
}return[expr]
}
def fun1(a:String,b:Int):Unit={
println("nima")
}
def time()={
println("Getting time in nano seconds")
System.nanoTime
}
def delayed( t:=>Long)={
println("In delayed method")
println("Param: "+ t)
}
def main(args:Array[String]):Unit={
delayed(time()) //先执行delayed方法体,执行到t时才执行内部传入的time()方法
}
}
/*
In delayed method
Getting time in nano seconds
Param: 1117398067174855
*/
def addInt( a:Int=5, b:Int=7):Int={
var sum:Int=0
sum = a + b
return sum //执行时,缺省参数时,按照默认参数计算!!
}
def main(args:Array[String]){
val str1:String="Hello, "
val str2:String="Scala!"
println("str1 + str2 = "+ strcat(str1)(str2))
}
def strcat(s1:String)(s2:String)={
s1 + s2
}
def main(args:Array[String]){
val t =(4,3,2,1)
val sum =t._1 + t._2 + t._3 + t._4
println("Sum of elements: "+ sum )
}
package cn.itcast.actor
import scala.actors.{Actor,Future}
import scala.collection.mutable.{HashSet,ListBuffer}
import scala.io.Source
/**
* Created by root on 2016/5/11.
*/
classTaskextendsActor{
override def act():Unit={
loop {
react {
caseSubmitTask(filename)=>{
//局部统计, 结果是Map[String, Int]
val result =Source.fromFile(filename).getLines().flatMap(_.split(" ")).map((_,1)).toList.groupBy(_._1).mapValues(_.size)
sender !ResultTask(result)//发送ResultTask, 用它来包装result
}
caseStopTask=>{
exit()
}
}
}
}
}
caseclassSubmitTask(filename:String)
caseclassResultTask(result :Map[String,Int])
case object StopTask
object ActorWordCount{
def main(args:Array[String]){
val replySet =newHashSet[Future[Any]]()
val resultList =newListBuffer[ResultTask]()//存储actor读取的内容
val files =Array[String]("c://words.txt","c://a.txt")
for(f <- files){
val actor =newTask
val reply = actor.start()!!SubmitTask(f)//启动, 并发送消息,返回Future
!
发送异步消息,没有返回值。
!?
发送同步消息,等待返回值。
!!
发送异步消息,返回值是 Future[Any]。
replySet += reply //把这些Future放到集合中
}
while(replySet.size >0){
val toCompute = replySet.filter(_.isSet)//取出有效的结果, 待处理的数据
for(f <- toCompute){
val result = f().asInstanceOf[ResultTask]//获取实例, 注意f后要加(), 调用apply(), 否则会报转换异常
resultList += result
replySet -= f
}
Thread.sleep(100)
}
//汇总的功能
//List((hello, 5), (tom,3), (helllo, 2), (jerry, 2))
val fr = resultList.flatMap(_.result).groupBy(_._1).mapValues(_.foldLeft(0)(_+_._2))
println(fr)
}
}
D26 Scala增强相关推荐
- Java核心类库之(常用API、字符串类、集合类、泛型)
目录 1 常用API 1.1 Math类 1.2 System类 1.3 Object类 1.4 Objects类 1.5 Arrays类 1.6 基本类型包装类 1.6.1 Integer类概述和使 ...
- 易观 CTO 郭炜:易观大数据架构的变迁
今天跟大家分享易观大数据架构的变迁,包含三部分,第一先给大家讲易观的变化,也是易观产品技术的结果:第二是从技术角度来讲一下易观大数据技术架构的变迁:第三分享一点创新方向的心得. 在过去,大家谈起易观, ...
- js6的未来(二)函数增强
js6的未来(二)函数增强 函数声明中的解构 JavaScript 的新解构赋值得名于数组或对象可以 "解构" 并提取出组成部分的概念.在 第 1 部分 中,学习了如何在局部变量中 ...
- PNaCl:Google通过LLVM增强对Chrome中原生应用的支持
作者 Abel Avram ,译者 臧秀涛 发布于 五月 20, 2013 通过支持运行LLVM位码(bitcode),Google增强了对Chrome中原生应用的支持. 在Google I/O 20 ...
- scala学习笔记-基础语法(1)
Scala与Java的关系 Scala与Java的关系是非常紧密的!! 因为Scala是基于Java虚拟机,也就是JVM的一门编程语言.所有Scala的代码,都需要经过编译为字节码,然后交由Java虚 ...
- 干货!Java字节码增强探秘
点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群"获取公众号专属群聊入口 来源:美团技术团队 1. 字节码 1.1 什么是字节码? ...
- Scala入门到精通——第二十三节 高级类型 (二)
本节主要内容 中置类型(Infix Type) 存在类型 函数类型 抽象类型 关于语法糖的问题,在讲解程序语言时,我们常常听到"语法糖"这个术语,在百度百科中,它具有如下定义: 语 ...
- Scala入门到精通——第十六节 泛型与注解
本节主要内容 泛型(Generic Type)简介 注解(Annotation)简介 注解常用场景 1. 泛型(Generic Type)简介 泛型用于指定方法或类可以接受任意类型参数,参数在实际使用 ...
- scala学习笔记-集合操作(15)
Scala的集合体系结构 1 // Scala中的集合体系主要包括:Iterable.Seq.Set.Map.其中Iterable是所有集合trait的根trai.这个结构与Java的集合体系非常相似 ...
最新文章
- 熬了一晚上,我从零实现了Transformer模型,把代码讲给你听
- 新冠图像数据分析论文集合(附链接)
- Linux时间矫正流程,Linux 时间矫正命令
- 图灵测试是不是已经Out了
- Spring Boot 自动配置的 “魔法” 是如何实现的?
- 【C/C++开发】C语言实现函数可变参数
- SSH详解以及免密登录配置,深入理解
- mybatis异常:Could not find result map ......... 问题分析及解决
- 按平均成绩排行c语言文件操作,学生成绩管理系统(c语言结构体以及文件操作)实验报告精选.doc...
- java虚拟机内存_java虚拟机内存区域的划分以及作用详解
- sqlserver入门
- python文本文件合并,python将多个文本文件合并为一个文本的代码(便于搜索)
- python股票行情接口实时获取股市数据
- Web端网页QQ临时会话在线咨询
- springboot使用FileAlterationMonitor完成对指定文件夹下面指定文件的动态监控
- python绘制分形图形教程_#python绘制分形图形教程#如何用Python绘制Circos图
- 5分钟搞定内网穿透工具-ngrok
- 搭建Ubuntu GPU服务器(宿主机篇)
- 地平线 J2J3了解笔记
- 白城师范学院计算机系鲍金玲,白城师范学院举办程序设计竞赛
热门文章
- 即构科技:一家聚集音视频通讯领域顶尖人才的公司
- 首次编译络达sdk时出现的问题
- 后门攻击阅读笔记,Graph Backdoor
- 发票查验小知识-发票开出后多久可以查真伪
- Linux次级代谢物分析,9大验证,精准靶向代谢组学技术对植物各部分次级代谢产物分析研究...
- 解决问题的底层逻辑:定义问题、挖掘本质、找到真正问题
- 华为手机有线共享网络_华为手机怎么投屏到电视?这2个方法又快又简单
- 都知道私域流量很重要,请直接告诉我们,该怎么开干吧
- 编写程序求出ax^2+bx+c的解并指出方程的实根
- 【CVPR 2019】Semantic Image Synthesis with Spatially-Adaptive Normalization(SPADE)