赞
踩
Scala是一门计算机语言
Scala和其他计算机语言的区别:
相同点:编程的思路是一样的
不同点:语法规则不一样
scala是在Java基础进行了一次封装
Scala是一门现代的多范式语言,志在以简洁、优雅及类型安全的方式来表达常用的编程类型。
它平滑地集成了面向对象和函数式语言地特性。
友情链接:
Scala是面向对象的
鉴于一切值都是对象,可以说Scala是一门纯面向对象的语言。
对象的类型和行为是由类和特质来描述的。
类可以由子类化和一种灵活的、基于mixin的组合机制(它是作为多重继承的简单替代方案)来扩展。
Scala是函数式的
鉴于一切函数都是值,又可以说Scala是一门函数式语言。Scala为定义匿名函数提供了轻量级的语法,
支持高阶函数,允许函数嵌套及柯里化。Scala的样例类和内置支持的模式匹配代数模型在许多函数式
编程语言中都被使用。对于那些并非类的成员函数,单例对象提供了便捷的方式去组织它们。此外,通过对提取器的一般扩展,Scala的模式匹配概念使用了right-ignoring序列模式,
自然地延伸到XML数据的处理。其中,for表达式对于构建查询很有用。这些特性使得Scala成为开发
web服务等程序的理想选择。
Scala是静态类型的
Scala配备了一个拥有强大表达能力的类型系统,它可以静态地强制以安全、一致的方式使用
抽象。典型来说,这个类型系统支持:
泛型类
型变注解
上、下类型边界
作为对象成员的内部类和抽象类型
复合类型
显式类型的自我引用
隐式参数和隐式转化
多态方法
类型推断让用户不需要标明额外的类型信息。
这些特性结合起来为安全可重用的编程抽象以及类型安全的扩展提供了强大的基础。
(声明变量的时候也不需要执行类型,弱类型语言——Javascript,函数编程)
Scala是可扩展的
在实践中,特定领域应用的发展往往需要特定领域的语言扩展。Scala提供了一种语言机制的
独特组合方式,使得可以方便地以库(library-jar)包的形式添加新的语言结构。很多场景下,这些扩展可以不通过类似宏(macros)的元编程工具完成。
隐式类允许给已有的类型添加扩展方法。
字符串插值可以让用户使用自定义的插值器进行扩展。
Scala的互操作性
Scala设计的目标是与流行的java运行环境(JRE)进行良好的互操作,特别是与主流的面向对象
编程语言——Java的互操作可能的平滑。Java的最新特性如函数接口(SAMs)、Lambda(λ)表达式、
注解及泛型类在Scala中都有类似的实现。另外有些Java中并没有的特性,如缺省参数值和带名字的参数等,也是尽可能地向Java靠拢。
Scala拥有类似Java的编译模型(独立编译、动态类加载),且允许使用已有的成千上万的高质量类库。
学习Scala的三种方式:IDE、命令行、Eclipse(集成了Scala SDK,只需要安装Scala IDE插件即可学习Scala)
IDE:
1.确认JDK的版本是JDK8
在命令行中输入:【javac -version】
如果不是javac 1.8.*_* 或者更高的版本需要安装JDK:【JDK的下载及配置】
2.然后下载并安装IntelliJ Community Edition
3.
①创建一个Scala项目,如果有已存在的Scala项目,点击open
②如果没有Scala项目,则依次点击:
File——>New——>Project
选择Scala,再选择IDEA
③命名项目为:HelloWord
④安装Scala SDK右键Scala的src新建Scala类,命名Hello并改变Kind to Object
Hello类的代码为:
object Hello extends App{ println("Hello,World!"); }
右键点击Hello,选择Run 'Hello'.
Hello World OK!
命令行(Command lines):
右键点击【src】新建Scala WorkSheet
为WorkSheet命名"Mathematician"
在WorkSheet中写入代码:
def square(x:Int) = x * x square(2)
Eclipse:
![]()
在运行的【 Eclipse】中,打开【 Eclipse Marketplace】 ![]()
下载【 Scala IDE】插件 ![]()
默认安装 ![]()
插件安装完毕,重启【 Eclipse】即可使用【 Scala】
![]()
创建【 Scala Project】 ![]()
为【 Scala Project】命名 ![]()
右键【 src】创建【 Scala Object】 ![]()
Hello World
HelloWorld源码:
package com.jinghangzz.scala.test object HelloWorld { def main(args: Array[String]): Unit = { println("Hello World"); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。