个人主页自助建站,威海建设公司网站,有人从搜索引擎找网站建设吗,智慧团建登录入口官方网站1、Scala高级语言
Scala简介
Scala是一门类Java的多范式语言#xff0c;它整合了面向对象编程和函数式编程的最佳特性。具体来讲Scala运行于Java虚拟机#xff08;JVM)之上#xff0c;井且兼容现有的Java程序#xff0c;同样具有跨平台、可移植性好、方便的垃圾回收等特性…1、Scala高级语言
Scala简介
Scala是一门类Java的多范式语言它整合了面向对象编程和函数式编程的最佳特性。具体来讲Scala运行于Java虚拟机JVM)之上井且兼容现有的Java程序同样具有跨平台、可移植性好、方便的垃圾回收等特性Scala是一门纯粹的面向对象的语言Scala也是一门函数式语言 Scala也是一门更适合大数据的语言Scala对集合类型数据处理有非常好的支持Spark的底层用Scala编写
编程范式
编程范式是指计算机编程的基本风格或典范模式。常见的编程范式主要包括命令式编程和西数式编程。面向对象编程就属于命令式编程比如C、Java等命令式语言是植根于冯•诺依曼体系的一个命令式程序就是一个冯•诺依曼机的指令序列给机器提供一条又一条的命令序列让其原封不动地执行函数式编程又称泛函编程它将计算机的计算视为数学上的函数计算函数编程语言最重要的基础是入演算入演算对函数式编程特别是Lisp语言有着巨大的影响。典型的函数式语言包括Haskell、 Erlang和Lisp等函数式编程与命令式编程命令式编程涉及多线程之间的状态共享需要锁机制实现并发控制函数式编程不会在多个线程之间共享状态不需要用锁机制可以更好并行处理充分利用多核CPU井行处理能力
1.1 Scala简介 Scala是一门多范式multi-paradigm的编程语言设计初衷是要集成面向对象编程和函数式编程的各种特性。 Scala运行在Java虚拟机上并兼容现有的Java程序。 Scala源代码被编译成Java字节码所以它可以运行于JVM之上并可以调用现有的Java类库。 函数编程范式更适合用于Map/Reduce和大数据模型着眼于函数本身函数范式逻辑清晰、简单非常适合用于处理基于不变数据的批量处理工作。 像Spark,kafka等都是采用Scala开发的所以学习好大数据掌握scala是必要的。Flink是带有scala的api支持。 官网The Scala Programming Language 安装方法scala部署使用方法 1.5 Scala 编码规范
1.5.1 文件名和编码
#源文件名必须和它包含的顶层类名保持一致包括大小写并以.scala作为后缀名。#源文件编码必须是 UTF-8
1.5.2 特殊字符
空格
除了换行符之外ASCII空格0x20是唯一合法的空格字符。这意味着 所有在源代码中包括字符、字符串以及注释中出现的其他空格字符需要转义,例如 Tab 用\t表示。 缩进必须使用 4个空格 而不是 Tab
特殊转义字符
对于有特殊转义表示的字符 \b, \t, \n, \f, \r, \, \, \\禁止使用其它等价转义方式。例如\012或者\u00a表示。
1.5.3 代码书写规范
列宽每行不超过150个字符
缩进4个空格严禁使用Tab
括号的使用 左花括号{前不能换行在其后换行。 在右花括号}前要有换行。 如果右花括号是一句语句、一个方法、构造函数或非匿名类的结尾其后需要换行。
new MyClass() { // 左花括号前不能换行在其后换行Overridedef method():Unit {if (condition()) {try {do {something()} while (!stop()) // do-while中间的右花括号后} catch { // try-catch中间的右花括号后无需换行case e:Exception recover()} // try-catch结束右花括号后需要换行} else { // if-else中间的右花括号后无需换行doSomethingElese()} // if-else结束右花括号后需要换行}
其他scala中的简单表达式可以省略括号
// 推荐
def square(x: Int) x * x
val y if (x 0) -x else x
if(cond1){// one line statement
}else{// one line statement
}
// 避免
if (x 0) -x
elsex
空行的使用
在以下情况下增加空行 在类的不同的成员间增加空行包括成员变量、构造函数、方法、内部类、静态初始化块、实例初始化块等两个成员变量声明之间可以不加空行。空行通常用于对成员变量进行逻辑分组 方法体内按需增加空行以便从逻辑上对语句进行分组 禁止使用连续的空行
1.5.4 注释风格
使用java风格的注释不用使用scala风格
/** 单行注释 */
// 单行注释
/*** java风格的多行注释* 推荐使用*/
/** scala风格的注释* 不推荐使用*/
1.5.5 命名规范
基本原则驼峰命名命名有业务含义。
val orderName name