Scala基础

本文介绍了如何安装和运行Scala,包括其面向对象和函数式编程特性,以及数据类型、常量和变量的使用,运算符、数组、函数(包括匿名函数、高阶函数和柯里化)以及控制结构(如if语句和for循环)等基础知识。
摘要由CSDN通过智能技术生成

安装与运行Scala

Scala是一种纯粹的面向对象语言,也是一种函数式语言。

Scala具有以下特性

  1. 面向对象
  2. 函数式编程
  3. 静态类型
  4. 可扩展

安装了Spark即可使用Scala

先开启hadoop集群再开启spark

基本知识点

数据类型

所有数据类型的第一个字母必须大写

类型推断:Scala会区分不同类型的值,并且会基于使用值的方式最终确定最终结果的数据类型 

定义与使用常量变量 

常量通过val 关键字定义,常量一旦定义就不可更改,即不能对常量进行重新计算或重新赋值,常量名要以字母或下划线开头。由于Scala具有类型推断功能,所有定义常量时不用特意写明数据类型,但是写了也没事。

变量通过var 关键字定义,命名规则与常量类似,定义后可以重新被赋值,但是只能将同类型的值赋值给变量

使用运算符

 其中算数运算符,关系运算符,逻辑运算符与java中的运算符含义一样就不多做描述

定义与使用数组

数组是一种存储了相同类型元素的固定大小的顺序集合

定义数组的方法

  1.  var [数组名]:Array[数组内元素类型] =  new Array[数组内元素类型](数组长度)
  2.  var [数组名] =  Array(列出数组内元素)

 

连接两个数组有以下两种方法, 第二种方法必须事先引入包,否则报错

Scala可以使用range()方法创建区间数组,同样需要提前导入包,创建一个区间为1~10且步长为2的数组

定义与使用函数

函数的定义由一个def关键字开始,紧接着是函数名称和可选的参数列表,其次是一个冒号“:”和函数的返回类型,之后是赋值运算符“=”,最后是方法体。返回类型可以是任意合法的Scala数据类型,若函数无返回值,则函数的返回类型为“Unit”

def functionName (参数列表): [return type] = {方法体} 

在text类中定义一个两数相加的函数(如果函数定义在一个类中,可以通过类名.方法名(参数列表)的方式调用)

匿名函数 

匿名函数即定义函数时不给出函数名的函数,匿名函数用箭头“=>”定义,箭头左边是参数列表,箭头右边是表达式,通常可以将匿名函数赋值给一个常量或变量,再通过常量名或变量名调用该函数

 若函数中的每个参数在函数中最多只出现一次,则可以使用占位符“_”代替参数,可以将占位符看做表达式里需要被填入的空白,这个空白在每次函数被调用时用函数的参数填入

 高阶函数——函数作为参数

高阶函数指的是操作其他函数的函数,高阶函数可以将函数作为参数,也可以将函数作为返回值。高阶函数经常将只需要执行一次的函数定义为匿名函数并作为参数。高阶函数add2使用了匿名函数f,值a,值b作为参数,而f又调用了a和b作为参数

 高阶函数——函数作为返回值

高阶函数可以产生新的函数,并将新的函数作为返回值定义高阶函数计算矩形的周长,func来接收参数为4的rectangle这一函数,然后又输入了5作为宽,返回值为(lenght+height)*2这一函数

函数柯里化

 函数柯里化是指将接收多个参数的函数变换成接受单一参数的函数,新的函数返回一个以原函数余下参数为参数的函数

一般函数的写法及其调用方式为add3,函数柯里化示例为add4

if语句和for循环

与java中的语句相差不大,不多作讲解 

 

  • 22
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值