当前位置: 首页 > news >正文

scala编码

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"

http://www.lryc.cn/news/259135.html

相关文章:

  • 智慧路灯杆如何实现雪天道路安全监测
  • C语言指针基础题(二)
  • 物奇平台MIC配置与音频通路关系
  • 外包干了3年,技术退步太明显了。。。。。
  • 阶段十-java新特性
  • win10重装系统历程
  • 【知识积累】深度度量学习综述
  • webrtc网之sip转webrtc
  • 【Spring】依赖注入之属性注入详解
  • 6-tornado配置文件的使用(命令行解析、文件设置)
  • k8s ingress service endpoints 解决微信服务器验证问题(内网穿透)
  • postgresql-effective_cache_size参数详解
  • CUDA锁页内存的使用
  • python常见代码用法
  • MTU TCP-MSS(转载)
  • 【ARM Trace32(劳特巴赫) 高级篇 20 -- SNOOPer 使用介绍】
  • MySQL笔记-第11章_数据处理之增删改
  • ANSYS常见error解答(转)
  • 【Let‘s Encrypt SSL】使用 acme.sh 给 Nginx 安装 Let’s Encrypt 提供的免费 SSL 证书
  • XML学习及应用
  • Docker部署Nacos集群并用nginx反向代理负载均衡
  • C++STL的stack和queue(超详解)
  • 【C语言实现windows环境下Socket编程TCP/IP协议】
  • CGAL的3D简单网格数据结构
  • 正则表达式(9):扩展正则表达式
  • 静态SOCKS5:了解基本概念和协议
  • 用23种设计模式打造一个cocos creator的游戏框架----(十二)状态模式
  • js 转换为数组并返回(Array.of())
  • git上传文件夹后打不开,有@.....
  • 31、应急响应——Windows