Spark 第二讲 Scala简介
一. Scala 简介
Scala 是 Scalable Language 的简写,是一门多范式的编程语言,由联邦理工学院洛桑(EPFL)的 Martin Odersky 于2001年基于 Funnel 的工作开始设计,设计初衷是实现可伸缩的语言,集成面向对象编程和函数式编程的各种特性。因此 Scala 是一种纯面向对象的语言,每个值都是对象。同时 Scala 也是一种函数式语言,其函数也能当成值来使用。由于 Scala 整合了面向对象语言和函数式编程的特性,Scala 相对于 Java、C、C++ 等其他语言更加简洁。
Scala 源代码被编译成 Java 字节码,所以它可以运行于 JVM 之上,并可以调用现有的 Java 类库。Scala 一开始就打算基于 Java 的生态系统发展自身,而这令 Scala 受益匪浅。
“If I were to pick a language to use today other than Java, it would be Scala.”
-- James Gosling
二. Scala 特性
- 面向对象:由于面向对象的诸多特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护和扩展。
- 函数式编程:把函数当变量用,关注于描述问题而不是怎么实现,这样可以让代码更易读。
- 静态类型:编译时就能发现类型不匹配的错误,编辑器可以帮助我们提前避免程序在运行期间有可能发生的一些错误。如果在程序中明确地规定了数据类型,编译器还可以针对这些信息对程序进行一些优化工作,提高程序执行速度。
- 速度快:Scala 语言表达能力强,一行代码抵得上 Java 多行,开发速度快;Scala 是静态编译的,所以和 JRuby,Groovy 比起来速度会快很多。
- 能融合到 Hadoop 生态圈:Hadoop 现在是大数据事实标准,Spark 的出现并不是要取代 Hadoop,而是要完善 Hadoop 生态。
- 优雅:这是框架设计师第一个要考虑的问题,框架的用户是应用开发程序员,API 是否优雅直接影响用户体验。
三. Scala 使用
- 交互式:开始学习 Scala 最简单的方法就是使用 Scala 交互式解释器(REPL),它是编写Scala 表达式和程序的交互式 shell,交互式编程不需要创建脚本文件,可以通过 scala 命令调用(退出 :quit)。
- 脚本形式:创建后缀为 scala 的文件来执行代码。
vi HelloWorld.scalaobject HelloWorld {def main(args: Array[String]){print("Hellow World!");}}scalac HelloWorld.scala # 编译 scala HelloWorld # 运行
四. 注意事项
- 命名:
可以由字母、数字、符号(_ $ + : < > ?等)组成【例:unary_+】;
以字母和下划线开头;
区分大小写;
类名首字母大写,变量名、方法名首字母小写;
驼峰式命名;
- 程序文件名应该与对象名称相同
新版本取消这种限制,但是建议保留
- Scala 程序的 main() 方法为入口方法
def main(args: Array[String])
- 单行代码可不用分号(;)结束
- 定义包(package):
- 引用(import):
五. 关键字
六. 注释(和 Java 一样)
Spark 第二讲 Scala简介相关推荐
- Spark 第一讲 Scala安装配置
介于学习大数据都有编程功底,便不在细究小操作,如有不懂可自行百度. 以 scala 2.12.11 为例,官网下载:http://www.scala-lang.org/download/ ...
- Spark基础学习笔记08:Scala简介与安装
文章目录 零.本讲学习目标 一.Scala简介 (一)Scala概述 (二)函数式编程 (三)Scala特性 1.一切都是对象 2.一切都是函数 3.一切都是表达式 (四)在线运行Scala 二.选择 ...
- 【阿里云 CDP 公开课】 第二讲:CDH/HDP 何去何从
简介:Hadoop社区版CDH/HDP已经不再更新,也将终止服务.后续的平台路线图怎么规划?Cloudera CDP整合了CDH和HDP,有哪些性能提升和功能增强?如何平滑的进行迁移?本文结合CDH/ ...
- Scala简介以及基本语法(一)
文章目录 Scala简介 为什么要使用Scala? Scala vs Java 安装JDK以及SDK IDEA安装Scala插件 第一个Scala程序 Scala基本语法 声明变量 使用类型推断来定义 ...
- Scala 简介 [摘自 Scala程序设计 ]
Scala 简介 1.1 为什么选择Scala Scala 是一门满足现代软件工程师需求的语言:它是一门静态类型语言,支持混合范式:它也是一门运行在 JVM 之上的语言,语法简洁.优雅.灵活.Scal ...
- 《Scala入坑笔记》一、Scala简介
Scala 是 Scalable Language 的简写,网上没有发现谁问 Scala 怎么读,你是按 Scalable 的发音读作 ['skeɪlə] 还是喜欢读作斯卡拉? Scala 是一门多范 ...
- Java基础知识第二讲:Java开发手册/JVM/集合框架/异常体系/Java反射/语法知识/Java IO
Java基础知识第二讲(Java编程规范/JVM/集合框架/异常体系/Java反射/语法知识/Java IO/码出高效) 分享在java学习及工作中,常使用的一些基础知识,本文从JVM出发,讲解了JV ...
- 2021年大数据常用语言Scala(一):Scala简介
目录 一.Scala简介 为什么使用scala Scala对比Java 案例 一.Scala简介 scala是运行在JVM上的多范式编程语言,同时支持面向对象和面向函数编程 多范式:就是包含多种编程思 ...
- 第二讲:Android系统构架分析和应用程序目录结构分析
2019独角兽企业重金招聘Python工程师标准>>> 本讲内容: Android系统构架简介 Android应用程序结构分析 点这里下载:Android学习指南第二讲源代码 一.A ...
最新文章
- Vue 2.5中将迎来有关TypeScript的改进!
- java实现的18位×××格式验证算法
- Docker for Windows 使用 VMware WorkStation
- Android-应用性能测试
- php代码在线快速生成,PHPGEN在线代码生成器
- ChaosConf 2018:混沌实验的演变
- 简单了解RestTemplate
- c语言跑马灯实验报告,单片机跑马灯实验
- SAP产品和3D渲染技术的结合-使用JavaScript的开源3D渲染库实现
- Panoptic Segmentation论文笔记
- shell 基础知识
- 面试官这Redis夺命连环12问,谁顶得住?
- 在填写表单中输入全角数字的解决方案
- python爬虫网络库下载_Python3 DHT 网络磁力种子爬虫
- android中TextView属性之autoText解析
- SpringMVC、Struts1和Struts2区别
- arcgis10之给图层添加注记
- 智能路由器OpenWrt 开发环境 及 编译分析(一)
- 企查查api接口批量操作实战
- MySQL UUID函数的详解