
Scala
AIgeeksu
致知力行!
展开
-
5.Scala面向对象
1.在Scala中定义类用class关键字2.可以使用new ClassName的方式构建出类的对象3.如果Object中的名称和class的名称相同,则Object中的内容都是class的静态内容:也就是说Object中的内容class都可以在没有实例化的时候直接去调用,正因为没有类的实例的时候可以调用object中的一切内容,所以使用object中特定的方法来创建实例,而这个特定的方法原创 2017-04-17 14:31:00 · 235 阅读 · 1 评论 -
4.Scala数组
1.关于Scala中的数组的创建与操作1).最原始的创建数组的方式:val array = new Array[Int](5),指定数组的类型是Int,且其固定长度是5个长度2).最常用和经典的创建数组的方式是:Array[Int]{1,2,3,4,5},直接通过Array类名并传入参数的方式来创建数组实例,其背后的实现是调用Array的工厂方法apply来构建出数组及数组的内容。3)原创 2017-04-16 18:08:10 · 347 阅读 · 2 评论 -
3.Scala中的函数
1.函数可以被简单的被认为是包裹了一条或几条语句的代码体,该代码体接收若干个参数,经过代码体的处理后返回结果。例如:f(x) = x + 1 2.在Scala中函数可以像变量一样被传递,被赋值,同时函数可以赋值给变量, 3.变量也可以赋值给函数,之所以可以这样,原因在于函数背后是类和对象,也就说在运行的时候函数其实是一个变量!!!当然这背后的类是Scala语言自动帮助我们生成的,原创 2017-04-16 14:13:58 · 383 阅读 · 2 评论 -
2.scala控制结构
scala总的控制结构跟java有很大的区别,以下是scala特色的控制结构知识点总结:1.scala中的if表达是有返回值的2.if条件表达式可以进行类型推导,类型推导的一般过程就是根据变量的值的类型来确定变量的类型;类型推导带来的好处就是可以省略掉变量类型的书写,为复杂算法的实现,提供了非常大便利;3.scala中允许if语句不跟else部分,默认的实现是if(...) ... e原创 2017-04-13 17:19:39 · 423 阅读 · 3 评论 -
1.scala之HelloWorld
现在跟大伙一起分享下scalahelloword级别的学习要点:1.val的重要性:scala使用val来修饰常量,有点类似于java中的final,在分布式系统中这个val意义非凡,在分布式系统中,一般要求值不可变,val声明的内容是不可变的,所以不用担心。在机器之间传递数据的时候内容被修改,这为分布式编程打下了非常好的基础。spark中的核心抽象RDD也是不可改变的。2.scala是一原创 2017-04-13 12:34:45 · 472 阅读 · 3 评论 -
6.Scala中的Map和Tupple
1.默认情况下Map构造的是不可变的集合,里面的内容不可修改,一旦修改就变成了新的Map,原有的Map的内容保持不变2.Map的实例是调用工厂方法模式apply来构造Map实例的,而需要注意的是Map是接口,在apply中使用了具体的实现3.如果想直接new出Map实例,则需要使用HashMap等具体的Map子类4.查询一个Map中的值,一定采用getOrElese的语法,一方面在ke原创 2017-04-18 09:19:17 · 742 阅读 · 1 评论 -
7.scala面向对象2
1.介绍scala面向对象2的时候先提下以下几点:1.1 scala函数是指不依赖于类的,一旦依赖于类的时候,就叫方法,过程就是一个没有返回值的方法1.2 scala中有类似于lazy级别的操作,lazy的变量在第一次使用时才会被实例化。spark中也有类似的操作,例如spark中Transformation类型的操作都是lazy的,不会触发job执行,Action级别的操作会触发job执原创 2017-04-18 17:48:34 · 270 阅读 · 1 评论