加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala - 01 - Scala简介

发布时间:2020-12-16 09:03:09 所属栏目:安全 来源:网络整理
导读:Scala简介 Scala(Scalable Language)是一门多范式(multi-paradigm)编程语言,Scala的设计吸收借鉴了许多种编程语言的思想,具备面向对象编程、函数式编程等特性。 Scala具备强大的并发性,支持函数式编程,可以更好地支持分布式系统; Scala语法简洁,能

Scala简介

Scala(Scalable Language)是一门多范式(multi-paradigm)编程语言,Scala的设计吸收借鉴了许多种编程语言的思想,具备面向对象编程、函数式编程等特性。
  • Scala具备强大的并发性,支持函数式编程,可以更好地支持分布式系统;
  • Scala语法简洁,能提供优雅的API;
  • Scala兼容Java,运行速度快,且能融合到Hadoop生态圈中;
?

Scala特性

  • 交互式编程:提供REPL(Read-Eval-Print Loop,交互式解释器),可以即时查看中间结果并修改
  • 可伸展的(Scalable)编程语言:小脚本到大规模系统编程都能胜任
  • 纯正的面向对象语言:每个值都是对象,每个操作都是方法调用
  • 函数式语言:没有可变变量,不会有内存共享的问题
  • 兼容Java,无缝的Java互操作:
  • Scala运行于Java平台(JVM,Java 虚拟机)上,,scalac编译器将.scala源文件编译成.class文件(Java字节码),被JVM加载并执行;
  • 兼容并可以调用现有的Java类库,Java包可以被import到Scala来直接调用Java方法,访问Java字段,继承Java类和实现Java接口;
  • Scala也可以被Java直接调用;
?
?

Scala文档

Docs: http://docs.scala-lang.org/
API Docs: http://www.scala-lang.org/api/current/
zh-cn
  • http://docs.scala-lang.org/zh-cn/
  • http://docs.scala-lang.org/zh-cn/cheatsheets/
  • http://docs.scala-lang.org/zh-cn/overviews/
?

Scala基础教程

  • 菜鸟教程 - Scala ?http://www.runoob.com/scala/scala-tutorial.html
  • 易百教程 -?Scala??http://www.yiibai.com/scala/
?

Scala编码约定

  • 区分大小写?- Scala区分大小写
  • 类名称?- 所有类名应以大写字母开头。如果包含多个单词,则每个内部单词的第一个字母应该是大写。
  • 方法名称?- 所有方法名称应以小写字母开头。如果包含多个单词,则每个内部单词的第一个字母应为大写。
  • 程序文件名?- 程序文件的名称必须与对象名称完全匹配,并将.scala作为文件后缀,否则将不会编译。
  • def main(args:Array [String])?- Scala程序从main()方法开始,Scala程序的强制性部分。
?

Scala换行符

  • Scala是一种面向行的语言,其语句以分号(;)或换行符终止。
  • 语句结尾处的分号(;)通常是可选的。语句在单行上自行显示,则不需要输入。
  • 如果在单行上写多个语句,则需要分号。
在命令行下,通常Scala解释器会推断出输入的代码是否结束。
如果还没有结束,解释器就会在下一行显示一个竖线“|”,可以继续输入剩余的代码。
如果想放弃本次输入,可以在“|”后面连续敲入两个回车,结束本次输入。
scala> val test =
     |
     |
You typed two blank lines.  Starting a new command.

scala>

?

Scala注释

  • Scala单行和多行注释与Java类似。
  • 注释中任何字符都被Scala编译器忽略。
  • 多行注释可以嵌套,但需要正确嵌套。
?

Scala包

使用 package 关键字定义包。
  • 一个包是一个命名的代码模块
  • 包声明是源文件中的第一个非注释行
  • 导入Scala软件包,以便在当前的编译范围内引用
  • 可以从单个包导入单个类和对象,也可以导入多个类或对象
使用 import 关键字引用包。
  • import语句可以出现在任何地方,而不是只能在文件顶部。
  • import的效果从开始延伸到语句块的结束。
import java.awt.Color  // 引入Color
import java.awt._  // 引入包内所有成员
import java.awt.{Color,Font}  //引入包中的几个成员,可以使用selector(选取器)

import java.util.{HashMap => JavaHashMap}  //重命名成员
import java.util.{HashMap => _,_}   //隐藏成员  //引入了util包的所有成员,但是HashMap被隐藏了

注意:默认情况下,Scala 总会引入 java.lang._ 、 scala._ 和 Predef._。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读