Scala教程
Scala表示可扩展性语言,是一种混合函数式编程语言。它是由Martin Odersky创建,并于2003年首次发布。
Scala平滑地集成面向对象和函数式语言的特点,并且Scala被编译在Java虚拟机上运行。许多现有的企业依赖于Java的关键业务应用,正在转向Scala以提高他们的开发效率,应用程序的可扩展性和整体可靠性。
下面是Scala应用开发者首选的重要特征列表。
Scala是面向对象:
Scala的每一个值都是一个对象,它是意义上的纯面向对象语言。对象的类型和行为特征将在以后的章节解释说明。类由子类,并作为一种干净替代多重继承,灵活基于mixin组合机制扩展。
Scala是函数:
Scala的每一个函数为一个值,因为每个值是一个对象,因此最终每一个功能都是一个对象意义上的函数。
Scala提供了一个轻量级的语法用来定义匿名函数,支持高阶函数,它允许函数嵌套,并支持curry处理。这些概念将在以后的章节中解释。
Scala是静态类型:
Scala不像其他一些静态类型语言,并不期望提供冗余类型信息。不必在大多数情况下指定类型,当然也不需要重复。
Scala在JVM上运行:
Scala被编译成由Java虚拟机(JVM)执行的Java字节码。这意味着,Scala和Java可在一个共同的运行平台。可以轻松地从Java代码移动到Scala。
Scala编译器编译Scala代码转换为Java字节码,可以通过scala命令执行。Scala的命令类似于java命令,因为它可以执行编译Scala代码。
Scala可以执行Java代码:
Scala可以使用在Java SDK的Scala中的所有类,也是自定义Java类或者Java开源项目。
Scala vs Java:
Scala有一组功能,它不同于Java。其中一些功能是:
所有类型的对象。
类型推测。
嵌套函数。
函数是对象。
领域特定语言(DSL)的支持。
特质。
闭包。
并发支持灵感来自Erlang。
Scala Web框架:
Scala被到处用于企业Web应用程序。可以查看最流行的几个Scala中 Web框架:
Scala教程的更多相关文章
- 如何在Ubuntu上配置scala教程
Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言 .并集成面向对象和函数式变成的各种特性.这里为了学习spark特地配置了scala. 1.下载scala安装包 ...
- 给Java开发者的Scala教程
author:Michel Schinz,Philipp Haller 1. 简介 本文将该要的介绍Scala语言和其编译.这里假设读者已经有一定的java开发经验,需要概要的了解他们可以用Scala ...
- Scala学习笔记之二--基本数据类型
前言 本篇主要讲Scala的基本数据类型,更多教程请参考:Scala教程 基本数据类型 Scala一共提供了9中数据类型,Scala的基本数据类型与java中的基本数据类型是一一对应的,这是Scala ...
- Scala HandBook
目录[-] 1. Scala有多cool 1.1. 速度! 1.2. 易用的数据结构 1.3. OOP+FP 1.4. 动态+静态 1.5. DSL 1.6 ...
- 使用scala开发spark入门总结
使用scala开发spark入门总结 一.spark简单介绍 关于spark的介绍网上有很多,可以自行百度和google,这里只做简单介绍.推荐简单介绍连接:http://blog.jobbole.c ...
- Scala入门学习笔记四--List使用
前言 本篇将介绍一个和Array很相似的集合List,更多内容请参考:Scala教程 本篇知识点概括 List的构造 List与Array的区别 List的常用方法 List伴生对象的方法 ::和:: ...
- Scala入门学习笔记三--数组使用
前言 本篇主要讲Scala的Array.BufferArray.List,更多教程请参考:Scala教程 本篇知识点概括 若长度固定则使用Array,若长度可能有 变化则使用ArrayBuffer 提 ...
- 编程语言教程书该怎么写: 向K&R学习!
原文地址:Lax Language TutorialsAndrew Binstock 每年在评审Jolt Awards图书的时候,我都会被一些语言教程类图书弄得心力交瘁.从这些年的评审经验来看,这些语 ...
- 用scala的actor并发编程写一个单机版的WorldCount
前言:最近一段时间比较忙,也是比较懒了吧,好长时间没写博客了,新的一年到来,给自己一个小目标,博客坚持写下去,分享一下这历程!废话不多说,开始正题咯(希望大家喜欢!) 首先这算是一个scala程序的入 ...
随机推荐
- 正则匹配IP
分析 IP地址的长度为32位,分为4段,每段8位,用十进制数字表示,每段数字范围为0~255( 2^8 ),段与段之间用英文句点“.”隔开.例如:某台计算机IP地址为10.11.44.100. IP地 ...
- nginx 日志切割
#!/usr/bin/python #-*-coding:UTF-8-*- import time import os logdir='/data/log/nginx' nginxpath='XX/l ...
- C语言二维数组中的指针问题
#include "stdio.h" void main() { int a[5][5]; int i,j; for (i=0;i<5;i++) { for (j=0;j&l ...
- Java RMI 介绍和例子以及Spring对RMI支持的实际应用实例
RMI 相关知识 RMI全称是Remote Method Invocation-远程方法调用,Java RMI在JDK1.1中实现的,其威力就体现在它强大的开发分布式网络应用的能力上,是纯Java的网 ...
- virtualbox 中的linux 共享文件 发生文件系统类型错误的解决办法
转自:http://blog.csdn.net/ls1160/article/details/24913391 最近在研究linux下的安卓源代码编译,遇到了一些问题,在虚拟机的共享文件上. 因为联网 ...
- Linux里startup.sh 和 shutdown.sh
最近用socket编写了一个服务端程序,监听1024端口,检测客户端发来的请求,所在Linux里写启动和停止的脚本: 在Eclipse里java写好程序,右击导出生成 Runnable JAR fil ...
- CSS3:flex布局应用
想把先前的整理的东西贴出来,怎奈总是有额外事情发生,额,教训电脑要离水杯远点~~ 推荐一本书,<编写可维护的Javascript>这是Nicbolas C.Zakas写的,他的<Ja ...
- 7 天玩转 ASP.NET MVC — 第 1 天
0. 前言正如标题「7 天玩儿转 ASP.NET MVC」所言,这是个系列文章,所以将会向大家陆续推出 7 篇.设想一下,一天一篇,你将从一个愉快的周一开始阅读,然后在周末成为一个 ASP.NET M ...
- NLPIR_Init文本分词-总是初始化失败,false,Init ICTCLAS failed!
前段时间用这个分词用的好好的,突然间就总是初始化失败了: 网上搜了很多,但是不是我想要的答案,最终去了官网看了下:官网链接 发现哇,版本更新了啊,下载页面链接 麻利的下载好了最新的文档,一看压缩包名字 ...
- putchar和puts
#include<stdio.h> int main() { char a = 'h'; char b[] = "hello"; putchar(a); //putch ...