Scala基础(待更新...)

在这里插入图片描述
在这里插入图片描述

Scala基础

一、Scala简介与概述

Scala简介
  • Scala源自Java
    • Scala构建在JVM之上
    • Scala与Java兼容、互通(❗ 不要混合编码)
  • Scala的优势
    • 多范式编程:支持面向对象编,程、面向过程编程、函数式编程等多种编程范式(函数式编程是Spark的重中之重)
    • 表达能力强,代码精简
  • 大数据与Scala
    • Spark采用Scala语言设计
      • 提供的API更加优雅
      • 基于JVM的语言更融入Hadoop生态圈
Scala概述
  • 面向对象特性

    • 每个值都是对象
      • 在Scala中,包括基本类型都是对象。每个值都是某个类的实例,每个操作都是方法调用。
    • 对象的数据类型和行为由类(Class)和特征
      (Trait,类似于interface)描述
      • Trait不仅具有Java中接口的功能,还引入了混入式多重继承的概念,同时可以包含方法的实现和变量定义
        • 混入式多重继承:允许在实例化时或之后,将多个Trait混入一个类中
          • 动态混入:直接面向对象编写代码。允许在对象实例化时或对象使用过程中,动态地将一个或多个Trait添加到类的实例中(方便开发者根据需要在运行时为对象添加新的行为或状态)
  • 函数式编程

    • 每个函数都是一个值

      • 在Scala中,每个函数都必须返回一个值。
      • 在Scala中,函数不需要写return,最后一个表达式的类型就是函数的返回类型。
    • 支持高阶函数,柯里化(currying),样例类(case class)及模式匹配…

      • 高阶函数:Scala中提供了大量的函数,90%的算法都无需我们自己去写,我们只需要"拼图"即可。

      • 柯里化:多参数列表

      • 样例类:Java类的简化版

      • 模式匹配:将数据延伸、变形、转化的过程语法简化

  • Scala是静态类型语言

  • 扩展性:隐式类、字符串插值

    • 隐式:Scala包括隐式类、隐式变量、隐式函数(Scala中的高阶函数中包含了大量的隐式函数)

      可用于将多个函数的共性逻辑声明为一个隐式函数,并将其自动传进去,可实现隐式转换

Scala代码规范
  • 通常一行一条命令,末尾无需添加分号。
  • 若一行包含多条命令,两两之间用分号隔开。(【建议】非特殊语法不允许主动用分号隔开命令)

三、理解Scala变量与数据类型

Scala的变量与常量
  • 创建变量
    • 创建变量必须赋初值
    • 可以不指定变量的具体类型,如:var a = 12。则变量的类型由首次赋值的值类型决定且锁定
    • 若声明时已指定变量类型,如:var a:String = “”,则类型不可更改。
var variableName[:Type] = V
  • 创建常量
    • 创建常量且初始化后,常量的类型和值都将锁定。
val valName[:Type] = V
  • 类型别名
type Alias = Type
Scala的数据类型
菱形式 数据类型

在这里插入图片描述

  • Any
    • Anything(基本类型)
      • Unit (≈void)
      • Boolean
      • Byte
      • Short
      • Int
      • Long
      • Float
      • Double
      • BigInt
      • BigDecimal
    • AnyRef(引用类型)
      • String
      • List
      • SelfDefinedClass
  • Null是所有引用类型的子类,Nothing是所有类的子类
上一篇:OPPO 后端二面,凉凉。。。-美众议院通过 TikTok 法案


下一篇:服务器做raid几好