[Scala] 语法基础

概述

  • Spark基于Scala开发
  • 基于jdk
  • 多范式编程语言
    • 面向对象:和java一样
    • 函数式:代码简洁;可读性差,尤其是隐式类 / 函数 / 参数

运行环境

  • REPL:命令行
  • IDE:Eclipse 或 IDEA

命令

  • 变量+.+Tab:查看可用函数

数据类型

  • 没有基本数据类型,任何数据都是对象
  • 定义变量(var)和常量(val)时,可不指定数据类型,Scala会自动进行数据推导

  • Byte:8位有符号数字
  • Short:16位有符号数字
  • Int:32位有符号数字
  • Long:64位有符号数字
  • Char:字符
  • String:字符串
  • Unit:相当于Java中的void
  • Noting:执行过程中产生Exception

函数

  • 内置函数

  • 自定义函数
    • 没有return语句,函数最后一句话就是函数的返回值

  • 循环
    • s <- list:提取list中的每个元素
  • 求值策略
    • call by value:定义 :,对函数实参求值,且只求一次,如下图中bar函数没用到x也求值
    • call by name:定义:=>,在函数体内部,每次用到时求值,如下图中bar函数没用到y就不求值

      

参数

  • 默认参数

  • 代名参数
    • 多个默认参数,赋给哪个

  • 可变参数

懒值

  • 常量如果是lazy的,初始化会被推迟到第一次使用的时候
  • Spark的核心是RDD(数据集合),操作数据集合中的数据需要使用算子(函数、方法)
    • Transformation:延时加载,不触发计算
    • Action:触发计算

例外

  • try...catch...finally

数组

  • 定长数组:Array

  • 变长数组:ArrayBuffer

  • 多维数组

映射

  • <key,value>对,用Map表示

 

元组

  •  不同数据类型数据的集合

参考

https://www.scala-lang.org/files/archive/api/2.11.8/#package

Scala中的"- >"和" -"以及"=>"

https://blog.csdn.net/someInNeed/article/details/90047624 

https://www.jianshu.com/p/7ea0a450eec8

https://blog.csdn.net/wangrui1605/article/details/104821299

不写 return

https://www.jianshu.com/p/157a8c52c75b

scala 语法

https://blog.csdn.net/qq_40822132/article/details/103750037

https://hero78.blog.csdn.net/article/details/108342680

posted @ 2020-06-01 21:27  cxc1357  阅读(117)  评论(0编辑  收藏  举报