美文网首页
大数据入门:Scala语言基础必备

大数据入门:Scala语言基础必备

作者: 成都加米谷大数据 | 来源:发表于2020-11-27 17:47 被阅读0次

    紧接上一篇,我们对大数据黄金语言Scala为大家做了概述性的简介,也了解了Scala作为诸多大数据框架的核心代码开发语言,其重要性不言而喻。今天的大数据入门分享,我们来从更具体的层面认识Scala语言,讲讲Scala语言基础必备。

    Scala的典型特点,就是简洁优雅,一方面,Scala继承了多种语言的优秀特性,另一方面它又抓住了Java这个强大的平台,运行于JVM之上,与Java类库互联互通,这使得Scala语言本身就有这很好的用户基础。

    Scala函数式编程

    Scala在编程上,既支持面向对象编程,也支持函数式编程,写出的程序简洁程度堪比动态语言,但是实质上是静态语言,可以说Scala是面向对象和函数式的完美结合。

    函数式编程,是一种编程范式,属于结构化编程的一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用。也正是得益于函数式编程,使得Scala代码简洁,开发快速,接近自然语言,易于理解,易于并发操作,不修改变量也就不存在锁线程的问题,在并发编程上优势难挡。

    Scala基础概念

    一、变量与基本类型

    1.变量

    Scala定义变量的两个关键字:"var"与“val”,var可重新赋值,val禁止重新赋值(只读)。定义多个变量用逗号分隔以批量赋值,var变量在重新赋值时必须保持类型一致。

    2.基本类型

    编译器会在变量赋值时自动推理类型,也可以在赋值时自己指定。

    二、Function&Method

    1.定义Method

    用实例简单地说明Scala的Method定义方式即:

    用“def”开始Method定义

    | Method名

    |   |参数及参数类型

    |   |        |   Method返回结果的类型

    |   |        |          |等号

           |   |        |          |   |

          def max(x: Int, y: Int): Int = {

            if(x > y)

              x

            else  |

              y   |

          }       |

                  |

    花括号里定义Method体

    2.Function

    Function的地位与变量的地位是相同的,Function是一种匿名函数的形式,它可以储存在变量中,成为Function与Method的参数或者当作其返回值。

    3.将Method转换为Function

    Method也可以实现和变量相等的地位,但是要通过一定的转换实现。

    4.闭包

    闭包是一个函数,返回值依赖于声明在函数外部的一个或多个变量。通常来讲可以简单的认为是可以访问一个函数里面局部变量的另外一个函数。

    5.函数的特殊调用形式

    Ⅰ.具名参数

    在调用函数时显示声明参数名并给予其赋值可以无视参数顺序。按位置传递的参数和按名字传递的参数可以混用。

    Ⅱ.默认参数值

    定义参数时给参数赋值即可实现默认参数值。

    Ⅲ.重复参数

    在最后一个参数的类型后加星号即可标记其为重复参数,可以在调用函数时传入任意个相同类型的元素,但是不能传入该类型的Array,否则会报错。

    6.柯里化

    在Scala中,柯里化允许一个函数有任意个参数列表。

    7.传名函数

    Scala在解析函数参数(Function arguments)时有两种方式:

    传值调用(call-by-value):先计算函数参数表达式的值,再应用到函数内部;

    传名调用(call-by-name):将未计算函数参数的表达式直接传到函数内部。

    简单的说,传名调用每次调用计算一次参数表达式,传值调用计算表达式后再进入函数,只有参数的值参与函数调用。

    关于大数据入门,Scala语言基础,以上就为大家做了简单的介绍了。Scala语言,在大数据生态当中,主要与Spark、kafka、Flink等框架有关,而这几个框架本身在大数据生态的地位也不容动摇。

    相关文章

      网友评论

          本文标题:大数据入门:Scala语言基础必备

          本文链接:https://www.haomeiwen.com/subject/ukzxwktx.html