Scala是什么
2009-04-29 11:31
246 查看
Scala是一门现代的多范式编程语言,志在以简练、优雅及类型安全的方式来表达常用编程模式。它平滑地集成了面向对象和函数语言的特性。
Scala是面向对象的:Scala是一个纯面向对象语言,在某种意义上来讲所有数值都是对象。对象的类型和行为是由class和trait来描述的。Class的抽象可由子类化和一种灵活的基于mixin的组合机制(它可作为多重继承的简单替代方案)来扩展。
Scala是函数式的: Scala还是一个函数式语言,在某种意义上来讲所有函数都是数值。Scala为定义匿名函数提供了一种轻量级的语法,它支持高阶(higher-order)函数、允许函数嵌套、支持局部套用(currying)。Scala的case类及其内置支持的模式匹配模型代数类型在许多函数式编程语言中都被使用。
Scala是静态类型的:Scala配备了一套富有表现力的类型系统,该抽象概念以一种安全的和一致的方式被使用。
Scala是可扩展的:Scala的设计承认了实践事实,领域特定应用开发通常需要领域特定语言扩展。Scala提供了一个独特的语言组合机制,这可以更加容易地以类库的形式增加新的语言结构:
任何方式可以被用作中缀(infix)或后缀(postfix)操作符
闭包按照所期望的类型(目标类型)自动地被构造
两者结合使用可方便地定义新语句,无需扩展语法,也无需使用类似宏的元编程工具。
Scala可与Java和.NET进行互操作:Scala设计时就考虑了与流行编程环境良好交互,如Java 2运行时环境(JRE)和 .NET框架(CLR)。特别是与主流面向对象语言,如Java和C#尽量无缝交互。Scala有像Java和C#一样的编译模型(独立编译,动态装载类),允许访问成千上万的高质量类库。
目前,Scala的2.7.1.RC1已经发布了,与之前的版本相比,这个版本主要添加或增强了下列特性:
Removed the contractiveness requirement for implicit methods. The compiler uses a cycle detection algorithm to prevent cyclic application of implicits.
Added regular expression parsers.
Added the methods requires and ensuring to Predef.scala
另外,修正了30多个bug.
Scala是面向对象的:Scala是一个纯面向对象语言,在某种意义上来讲所有数值都是对象。对象的类型和行为是由class和trait来描述的。Class的抽象可由子类化和一种灵活的基于mixin的组合机制(它可作为多重继承的简单替代方案)来扩展。
Scala是函数式的: Scala还是一个函数式语言,在某种意义上来讲所有函数都是数值。Scala为定义匿名函数提供了一种轻量级的语法,它支持高阶(higher-order)函数、允许函数嵌套、支持局部套用(currying)。Scala的case类及其内置支持的模式匹配模型代数类型在许多函数式编程语言中都被使用。
Scala是静态类型的:Scala配备了一套富有表现力的类型系统,该抽象概念以一种安全的和一致的方式被使用。
Scala是可扩展的:Scala的设计承认了实践事实,领域特定应用开发通常需要领域特定语言扩展。Scala提供了一个独特的语言组合机制,这可以更加容易地以类库的形式增加新的语言结构:
任何方式可以被用作中缀(infix)或后缀(postfix)操作符
闭包按照所期望的类型(目标类型)自动地被构造
两者结合使用可方便地定义新语句,无需扩展语法,也无需使用类似宏的元编程工具。
Scala可与Java和.NET进行互操作:Scala设计时就考虑了与流行编程环境良好交互,如Java 2运行时环境(JRE)和 .NET框架(CLR)。特别是与主流面向对象语言,如Java和C#尽量无缝交互。Scala有像Java和C#一样的编译模型(独立编译,动态装载类),允许访问成千上万的高质量类库。
目前,Scala的2.7.1.RC1已经发布了,与之前的版本相比,这个版本主要添加或增强了下列特性:
Removed the contractiveness requirement for implicit methods. The compiler uses a cycle detection algorithm to prevent cyclic application of implicits.
Added regular expression parsers.
Added the methods requires and ensuring to Predef.scala
另外,修正了30多个bug.
相关文章推荐
- scala有多个隐式转换或隐式参数匹配的是后会发生什么,我很好奇,试验了一把
- 在Scala中,def foo = {}和def foo() = {}有什么区别?
- Scala是什么?
- Scala的模式匹配本质是什么? -从Coursera的响应式编程说起
- Scala详解---------Scala是什么?可伸展的语言!
- Scala语言学习:Scala是什么?
- (scala实现) 在1到9(顺序不能变)之间插入+或-或什么都不插入,使得计算结果总是100
- 从jvm来看,scala中的@究竟是个什么鬼?@模式匹配符号(scala 词法分析 语法分析 常用)
- Scala学习记录-Scala是什么
- Scala具体解释---------Scala是什么?可伸展的语言!
- Scala 隐式转换 重要一点 什么是隐式转换以及隐式转换带来的好处
- scala中方法和函数有什么区别
- scala中模式匹配中的@代表什么意思
- 通过Scala理解什么是Monad
- 什么是正则表达式以及在Java1.4中的应用
- 什么是RSS阅读器
- OGNL是什么
- [编辑器]KindEditor 是什么?
- linux 操作系统下面都是什么文件?
- 什么是MySQL触发器