Scala学习(二)练习】的更多相关文章

控制结构和函数 摘要: 本篇主要学习在Scala中使用条件表达式.循环和函数,你会看到Scala和其他编程语言之间一个根本性的差异.在Java或C++中,我们把表达式(比如3+4)和语句(比如if语句)看做两样不同的东西.表达式有值,而语句执行动作.在Scala中,几乎所有构造出来的语法结构都有值.这个特性使得程序更加精简,也更易读.本篇的要点包括: 1. 表达式有值 2. 块也有值,是它最后一个表达式的值 3. Scala的for循环就像是"增强版"的Java for循环 4. 分号…
一.本章要点 延续让你可以回到程序执行当中之前的某个点; 可以在shift块中捕获延续 延续函数一直延展到包含它的reset块的尾部 延续所谓的”余下的运算“,从包含shift的表达式开始,到包含它的reset块的尾部结束,其中shift替换成一个”洞“ 当你传入一个参数来调用延续时,这个”洞“将传入的参数值填上 包含shift表达式的代码将被以”延续传递风格“(CPS)重写,直到包含该延续的reset为止 包含shift但没有reset的方法必须加上CPS注解 延续可以用来将对某个树形结构的递…
一.本章要点 隐式转换用于类型之间的转换 必须引入隐式转换,并确保它们可以以单个标识符的形式出现在当前作用域 隐式参数列表会要求指定类型的对象.它们可以从当前作用域中以单个标识符定义的隐式对象的获取,或者从目标类型的伴生对象获取; 如果隐式参数是一个单参数的函数,那么它同时也会被作为隐式转换使用 类型参数的上下文界定要求存在一个指定类型的隐式对象 如果有可能定位到一个隐式对象,这一点可以作为证据证明某个类型转换是合法的 二.隐式转换 隐式转换函数指以implicit关键字声明的带有单个参数的函数…
一.本章要点 每个actor都要扩展Actor类并提供act方法 要往actor发送消息,可以用actor!message 消息发送是异步的:”发完就忘“ 要接受消息,actor可以调用receive或react,通常是在循环中这样做 receive/react的参数是有case语句组成的代码块(偏函数) 不同actor之间不应该共享状态.总是使用消息来发送数据 不要直接调用actor的方法,通过消息进行通信 避免同步消息——将发送消息和等待响应分开 不同actor可以通过react而不是rec…
一.if表达式有值 val s=if(x>0) 1 else -1,相当于Java中x>0?1:-1(不过不拿呢个在?:中插入语句),而且Scala中可以用混合类型(如if (x>0) "Hello" else -1). 注:像 if(x>0) 1这样if语句可能没有输出值,但是在Scala中每个表达式都有值(此时是引入了一个Unit类,写做()[表示“无有用值”的占位符]. REPL中想换行用{},想粘贴输入paste进入粘贴模式,然后Ctrl+D退出. 二.…
Scala控制结构和函数&练习 1. 一个数字如果为正数,则它的signum为1:如果是负数,则signum为-1:如果为0,则signum为0:编写一个函数来计算这个值 简单逻辑判断: 测试结果如下: Scala中已经有此方法了,如下: println(BigInt(10).signum) 测试结果如下: 2. 一个空的快表达式{}的值是什么,类型是什么 在REPL中测试如下: 由此可以看出,它的值是()类型是Unit 3. 在Scala中何种情况下赋值语句x=y=1是合法的.(提示:给x找个…
一.开始使用Spring Cloud实战微服务 1.SpringCloud是什么? 云计算的解决方案?不是 SpringCloud是一个在SpringBoot的基础上构建的一个快速构建分布式系统的工具集(全家桶). SpringCloud拥有SpringBoot的特点. 2.关于SpringCloud的版本? 大部分spring软件的版本是以:主版本.次版本.增量版本.里程碑版本的形式命名. Spring Cloud Angel SR6??? Angel是SpringCloud的一个大版本,Se…
Scala是一门多范式的编程语言,一种类似Java的编程语言,设计初衷是实现可伸缩的语言.并集成面向对象编程和函数式编程的各种特性. Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点:但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法. 一.scala学习…
基于.net的分布式系统限流组件   在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可以让整个系统的运行更加平稳.今天要与大家分享一下限流算法和C#版本的组件. 一.令牌桶算法: 令牌桶算法的基本过程如下: 假如用户配置的平均发送速率为r,则每隔1/r秒速率将一个令牌被加入到桶中: 假设桶最多可以存发b个令牌.当桶中的令牌达到上限后,丢弃令牌. 当一个有请求到达时,首先去令牌桶获取令…
Scala学习资源: Scala官方网站:http://www.scala-lang.org/ Scala github:https://github.com/scala/scala Twitter Effective Scala:http://twitter.github.io/effectivescala/index-cn.html Twitter Scala School:https://github.com/twitter/scala_school Twitter Scala Schoo…