scala
普罗米修斯之火
这个作者很懒,什么都没留下…
展开
-
大数据之scla_柯里化方法,范型,隐式
柯里化详解语法 : 函数有多个参数列表意义: 方便数据的演变, 后面的参数可以借助前面的参数推演 , foldLeft的实现有多个参数列表 的函数就是柯里化函数,所谓的参数列表就是使用小括号括起来的函数参数列表curry化最大的意义在于把多个参数的function等价转化成多个单参数function的级联,这样所有的函数就都统一了,方便做lambda演算。 在scala里,curry化对类型推演也有帮助,scala的类型推演是局部的,在同一个参数列表中后面的参数不能借助前面的参数类型进行推演,cur原创 2020-09-14 22:52:33 · 543 阅读 · 0 评论 -
大数据之scala_scala之Akka通信
什么是ACTORSAkka Actors遵循Actor模型(废话!) 我们这把Actor当作是一个人,这个人不会自己和其他的人直接说话,他们只通过mail来进行交流。 现在来探讨Actors的一些特性:一、消息传递假设有两个人:学生和聪明的老师。学生每天早上都会给老师发送邮件,而聪明的老师都会回复一句名言。这里需要解释: 1、学生发送邮件。一旦发送成功,邮件不能再修改。这天然就具备了不可变性; 2、老师会自己决定何时检查邮箱; 3、老师还会回复一封邮件(也是不可变的); 4、学原创 2020-09-13 22:48:52 · 423 阅读 · 0 评论 -
大数据之scala_scala对比java的Lambda表达式和流式编程
在scala中有非常方便的map,filter,reduce等对集合进行一系列操作的方法那么我们想在java中实现这些方法该怎么编写程序呢?首先我们想想到,要对java中的集合进行功能扩展,有两种方式:1.装饰者模式2.继承使用装饰者模式时,可以编写一个包装类,在包装类里写上我们想要实现的方法模型然后在方法的参数列表中要求传入一个接口,在接口中定义一个类似于函数的标准,具体要实现的功能,由测试类new匿名内部类的时候自己传入为了使我们可以传入任意类型的数据,所以我们在定义参数类型时,可以使用原创 2020-09-13 20:49:46 · 378 阅读 · 0 评论 -
大数据之scala_scala的练习案例
练习案例平均温度案例val d1 = Array(("beijing", 28.1), ("shanghai", 28.7), ("guangzhou", 32.0), ("shenzhen", 33.1))val d2 = Array(("beijing", 27.3), ("shanghai", 30.1), ("guangzhou", 33.3))val d3 = Array(("beijing", 28.2), ("shanghai", 29.1), ("guangzhou", 32.0)原创 2020-09-11 13:05:04 · 850 阅读 · 0 评论 -
大数据之scala_scala(高阶函数 偏函数 匹配模式)
高阶函数函数的参数是函数的函数或者方法函数的返回值是函数的函数或者方法函数的参数和返回值都是函数的函数或者方法使用高阶函数的一个原因是减少冗余的代码。比方说需要写几个方法以通过不同方式来提升员工工资,若不使用高阶函数,代码可能像这样:object SalaryRaiser { def smallPromotion(salaries: List[Double]): List[Double] = salaries.map(salary => salary * 1.1) d原创 2020-09-10 22:47:07 · 180 阅读 · 0 评论 -
大数据之scala_scala之面向对象
类和对象详解组成结构构造函数成员变量成员方法(函数)局部变量代码块构造器构造器的定义每个类都有一个主构造器,这个构造器和类定义"交织"在一起类名后面的内容就是主构造器,如果参数列表为空的话,()可以省略scala的类有且仅有一个主构造器,要想提供更加丰富的构造器,就需要使用辅助构造器,辅助构造器是可选的,它们叫做this注意:主构造器会执行类定义中的所有语句例子一class User { // 类默认有一个无参的主构造函数}val user = new User原创 2020-09-10 22:22:43 · 145 阅读 · 0 评论 -
大数据之scala_scala之集合
集合scala中的集合分为两种 ,可变集合和不可变集合, 不可变集合可以安全的并发的访问!集合的类主要在一下两个包中1)可变集合包 scala.collection.mutable2) 不可变集合包 scala.collection.immutablescala默认使用的是不可变的集合 , 因此使用可变的集合需要导入可变集合的包scala的集合主要分成三大类(1)Seq 序列(2)Set 不重复集(3)Map 键值映射集注意: 所有的集合都继承自Iterator迭代器这个特质序列原创 2020-09-07 21:33:13 · 357 阅读 · 0 评论 -
大数据之scala_scala之函数和方法
函数scala中一种函数式编程语言 ,函数是scala中的头等公民,建议优先使用函数 , 函数实现的功能和方法一样 ,但是我们可以把函数理解成一种特殊的业务逻辑对象 ,所以函数可以作为参数和返回值… 函数也是用来处理数据的代码封装函数的定义方式一val | var 函数名称=(函数的参数列表) => 函数体 val add = (x: Int, y: Int) => { x + y}val parseStr = (str: String) => { str.toUp原创 2020-09-06 21:49:48 · 239 阅读 · 0 评论 -
大数据之scala_scala的介绍及基本语法
1.Scala概述什么是ScalaScala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序。面向函数和面向对象的混合式编程1.2.Scala特点1.优雅:这是框架设计师第一个要考虑的问题,框架的用户是应用开发程序员,API是否优雅直接影响用户体验。2.速度快:Scala语言表达能力强,一行代码抵得上Java多行,开发速度快;Scala是静态编译的,所以和JRuby,Groovy比起来速度会快原创 2020-09-06 21:17:46 · 721 阅读 · 0 评论