scala编码

2023-12-13 03:44:49

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() { // 左花括号前不能换行,在其后换行
 ? ?@Override
 ? ?def 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
else
    x

空行的使用

在以下情况下增加空行:

  • 在类的不同的成员间增加空行,包括:成员变量、构造函数、方法、内部类、静态初始化块、实例初始化块等两个成员变量声明之间可以不加空行。空行通常用于对成员变量进行逻辑分组

  • 方法体内,按需增加空行,以便从逻辑上对语句进行分组

  • 禁止使用连续的空行

1.5.4 注释风格

使用java风格的注释,不用使用scala风格

/** 单行注释 */
// 单行注释
?
/**
 * java风格的多行注释
 * 推荐使用
 */
?
/** scala风格的注释
  * 不推荐使用
  */
1.5.5 命名规范

基本原则:驼峰命名,命名有业务含义。

val orderName = "name"

文章来源:https://blog.csdn.net/HYSliuliuliu/article/details/134894028
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。