Scala语言的特点
(1)运行在 JVM 和 JavaScript 之上的语言
Scala运行在JVM上,兼容现有的Java程序,集成面向对象编程和函数式编程的各种特性,轻松实现和丰富的 Java 类库互联互通。Scala 不仅利用了 JVM 的高性能以及最优化性,Java 丰富的工具及类库生态系统也为其所用。不过 Scala 并不是只能运行在 JVM 之上
。
(2)静态类型
在 Scala 语言中,静态类型(static typing)是构建健壮应用系统的一个工具。Scala 修正了 Java 类型系统中的一些缺陷,此外通过类型推演(type inference)
也免除了大量的冗余代码。
(3)混合式编程范式——面向对象编程
Scala 完全支持面向对象编程(OOP)。Scala 引入特征(trait)改进了 Java 的对象模型。trait 能通过使用混合结构(mixin composition)
简洁地实现新的类型。在 Scala 中,一切都是对象,即使是数值类型。
(4)混合式编程范式——函数式编程
Scala 完全支持函数式编程(FP),函数式编程已经被视为解决并发、大数据以及代码正确性问题的最佳工具。使用不可变值、被视为一等公民的函数、无副作用的函数、高阶函数以及函数集合,有助于编写出简洁、强大而又正确的代码。Scala提供了轻量级的语法用以定义匿名函数,支持高阶函数,允许嵌套多层函数,并支持柯里化。Scala的case class及其内置的模式匹配相当于函数式编程语言中常用的代数类型。
(5)复杂的类型系统
Scala 对 Java 类型系统进行了扩展,提供了更灵活的泛型以及一些有助于提高代码正确性的改进。通过使用类型推演,Scala 编写的代码能够和动态类型语言编写的代码一样精简。
(6)简洁、优雅、灵活的语法
使用 Scala 之后,Java 中冗长的表达式不见了,取而代之的是简洁的 Scala 方言。Scala提供了一些工具,这些工具可用于构建领域特定语言(DSL),以及对用户友好的 API接口。
比如:【三元运算符, ++ --】
(7)可扩展的架构
使用 Scala,你能编写出简短的解释性脚本,并将其粘合成大型的分布式应用。
以下四种语言机制有助于提升系统的扩展性:
- 使用 trait 实现的混合结构
- 抽象类型成员和泛型
- 嵌套类
- 显式自类型(self type)
Scala语言的特点相关推荐
- 熟悉scala命令,scala语言运行超级素数和猴子大王
实验目的 在Linux操作系统中安装Scala 输入"scala"命令,熟悉地运行Scala解释器 scala语言运行超级素数和猴子大王 实验仪器 Virtualbox管理器 实验 ...
- Bazel发布Beta版本,增加对Groovy、Rust和Scala语言的支持
Bazel是Googe旗下的一款构建系统工具,六个月前Google将其开源,目前取得里程碑式的进展,发布了其第一个beta版本,增加了对数种语言和技术的支持. \\ Bazel是Google用来构建自 ...
- scala语言的底层是java实现的_Scala学习笔记一(与Java、Jvm的关系以及程序执行流程分析)...
一.Scala语言与Java.Jvm的关系分析 Scala语言是马丁奥德斯基接触Java语言后,针对Java语言的特点,将函数式编程语言的特点融合到Java中,由此发明的.Scala语言和Java语言 ...
- android studio scala插件,Scala 语言开发Andorid ,开发环境的搭建(一)
Scala 语言开发Andorid ,开发环境的搭建 厌倦 Java 繁琐的语法,为了更优雅的开发 Android 程序,Scala 代替 Java 是一个不错的尝试. 开发前可以学习 Scala 的 ...
- Apache Spark学习:利用Scala语言开发Spark应用程序
Spark内核是由Scala语言开发的,因此使用Scala语言开发Spark应用程序是自然而然的事情.如果你对Scala语言还不太熟悉,可以阅读网络教程 A Scala Tutorial for Ja ...
- Scala 语言输出的三种方式
Scala 语言输出的三种方式 字符串通过+号连接(类似 java). printf 用法 (类似 C 语言)字符串通过 % 传值. 字符串通过$引用(类似 PHP).
- Scala 语言转义字符
Scala 语言转义字符
- Scala语言整理(一)
与Java对比 语法对比 对比项 Java Scala 说明 标识符 / / 反引号括起来的字符也是标识符. 语句结束 分号(;) 分号(;)或者换行 包 package ... package ...
- Scala语言将加入宏指令
Scala开发团队正在将实验版宏指令加入到即将发行的2.10版中.Scala宏指令提供了编译时元编程的高级形式.Scala宏网站描述道: \u0026#xD;\n \u0026#xD;\n " ...
- scala语言示例_var关键字与Scala中的示例
scala语言示例 Scala var关键字 (Scala var keyword) The var Keyword in scala is used to declare variables. As ...
最新文章
- Cracking the coding interview--Q2.2
- android自动更新列表,Android数据库表结构自动升级
- 百度坐标转换火星坐标UDF
- 谁能畅游智能电视红海:联想K82,还是乐视?
- CentOS6安装tomcat6
- stm32cubeide外部中断_【STM32】HAL库 STM32CubeMX教程三----外部中断(HAL库GPIO讲解)
- 浅谈python MRO与Mixin模式
- 【GIS导论】实验一 桌面GIS的功能与菜单操作
- Xcode在 release 模式下断点调试
- 超漂亮的CSS3按钮制作教程分享
- 小学算术运算测试c语言,c语言小学算术运算测试.doc
- PyQt5快速入门教程4-QtDesigner设计登录界面
- 像word手动插入分页符一样实现报表中强制分页(强制分页)
- python小游戏——魂斗罗这是你的童年吗?
- 基于Java的网上商城系统
- 动感歌词制作与转换工具
- flask keras 多线程环境下加载模型
- 宠物商店信息管理系统
- 最新的单片机_涨势比深圳的房价还快!研究了39个ST单片机热门型号后,我发现了这些特点!...
- 历史的温度3:时代扑面而来,转瞬即成历史 读后感