Scala入门

Scala简介

Scala以JVM为目标环境,将面向对象和函数式编程有机地结合在一起,带来独特的编程体验.
它既有动态语言那样的灵活简洁,同时又保留了静态类型检查带来的安全保障和执行效率,加上其强大的抽象能力,既能处理脚本化的临时任务,又能处理高并发场景下的分布式互联网大数据应用,可谓能缩能伸。

  • Scala源自Java:
    Scala构建在JVM之上
    Scala与Java兼容、互通

  • Scala的优势:
    多范式编程:面向对象编程、函数式编程
    表达能力强,代码精简

  • 大数据与Scala:
    Spark采用Scala语言设计
    提供的API更加优雅
    基于JVM的语言更融入Hadoop生态圈

Scala交互式编程

Scala解释器读到一个表达式,对它进行求值,将它打印出来,接着再继续读下一个表达式。这个过程被称作“读取一求值一打印”循环(read-eval-print loop),即REPL.
从技术上讲, scala程序并不是一个解释器。实际发生的是,你输入的内容被快速地编译成字节码,然后这段字节码交由Java虚拟机执行。

在这里插入图片描述
IDEA中可以输入以下一段内容查看效果:

object HelloWorld {
def main(args:Array[String]):Unit={
    println("Hello,World")
  }
}

Scala概述

  • 面向对象特性:
    每个值都是对象
    对象的数据类型和行为由类(Class)和特征(Trait,类似于interface)描述
    利用特征实现混入式多重继承

  • 函数式编程:
    每个函数都是一个值
    支持高阶函数、柯里化(currying)、样例类(case class)及模式匹配……

  • Scala是静态类型语言

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

Scala变量与常量

  • 变量:在程序运行过程中其值可能发生改变的量,使用关键词 “var” 声明变量
    var name = "zhangsan"

  • 常量:在程序运行过程中其值不会发生变化的量,使用关键词 “val” 声明常量。
    val money = 100

  • 使用类型别名定义变量,type关键字
    type 类型别名=类型
    在这里插入图片描述

Scala关键字列表

在这里插入图片描述

Scala数据类型(与Java相同)

在这里插入图片描述

Scala数据层次类型结构

  • Any:所有类型的超类(顶级类型)
  • AnyVal:表示值类型的超类
  • AnyRef’表示引用类型的超类,对应java.lang.Object
  • Unit:表示无值,类似Java中的void
  • Nothing:所有类型的子类
  • Null:表示null或空引用
    (Null有唯一实例null
    Nothing没有实例,Nothing为类型系统提供了两种功能:
    1.用来当做Nil的类型List[Nothing]
    2.Nothing用来表示终止程序,非正常类型的返回值类型)
    在这里插入图片描述

字符串插值

  • s插值器:语序将变量引用,表达式直接插入字面字符中

在这里插入图片描述

  • f插值器
    在任何字符串字面前加上 f,就可以生成简单的格式化串,功能相似于其他语言中的 printf 函数。当使用 f 插值器的时候,所有的变量引用都应当后跟一个printf-style格式的字符串,如%d
    在这里插入图片描述
  • raw插值器
    除了对字面值中的字符不做编码外,raw 插值器与 s 插值器在功能上是相同的。
    在这里插入图片描述
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值