Scala简介与安装

Scala编程语言抓住了很多开发者的眼球。如果你粗略浏览Scala的网站,你会觉得Scala是一种纯粹的面向对象编程语言,而又无缝地结合了命令式编程和函数式编程风格。Christopher Diggins认为:不太久之前编程语言还可以毫无疑意地归类成“命令式”或者“函数式”或者“面向对象”。Scala代表了一个新的语言品种,它抹平了这些人为划分的界限。根据David Rupp在博客中的说法,Scala可能是下一代Java。这么高的评价让人不禁想看看它到底是什么东西。Scala有几项关键特性表明了它的面向对象
摘要由CSDN通过智能技术生成

目录

一、Scala简介

(一)Scala概述

(二)函数式编程

(三)Scala特性

1、一切都是对象

2、一切都是函数

3、一切都是表达式

(四)在线运行Scala

二、选择Scala版本

三、Windows上安装Scala

(一)到Scala官网下载Scala

(二)安装Scala

(三)配置Scala环境变量

(四)测试Scala是否安装成功

1、查看Scala版本

2、启动Scala,执行语句

四、Linux上安装Scala

(一)到Scala官网下载Scala

(二)安装Scala

1、登录ied虚拟机

2、上传scala安装包到ied虚拟机

3、解压scala安装包到指定目录

(三)配置Scala环境变量

(四)测试Scala是否安装成功

1、查看Scala版本

2、启动Scala,执行语句

五、​Scala的使用

(一)交互模式

1、命令行方式

2、文件方式

1、创建源程序

2、编译成字节码

3、解释执行对象


一、Scala简介

(一)Scala概述

Scala编程语言抓住了很多开发者的眼球。如果你粗略浏览Scala的网站,你会觉得Scala是一种纯粹的面向对象编程语言,而又无缝地结合了命令式编程和函数式编程风格。Christopher Diggins认为:

不太久之前编程语言还可以毫无疑意地归类成“命令式”或者“函数式”或者“面向对象”。Scala代表了一个新的语言品种,它抹平了这些人为划分的界限。

根据David Rupp在博客中的说法,Scala可能是下一代Java。这么高的评价让人不禁想看看它到底是什么东西。

Scala有几项关键特性表明了它的面向对象的本质。例如,Scala中的每个值都是一个对象,包括基本数据类型(即布尔值、数字等)在内,连函数也是对象。另外,类可以被子类化,而且Scala还提供了基于mixin的组合(mixin-based composition)。

与只支持单继承的语言相比,Scala具有更广泛意义上的类重用。Scala允许定义新类的时候重用“一个类中新增的成员定义(即相较于其父类的差异之处)”。Scala称之为mixin类组合。

Scala还包含了若干函数式语言的关键概念,包括高阶函数(Higher-Order Function)、柯里化(Currying)、嵌套函数(Nested Function)、序列解读(Sequence Comprehensions)等等。

Scala是静态类型的,这就允许它提供泛型类内部类、甚至多态方法(Polymorphic Method)。另外值得一提的是,Scala被特意设计成能够与Java.NET互操作。Scala当前版本还不能在.NET上运行(虽然上一版可以-_-b),但按照计划将来可以在.NET上运行。

Scala可以与Java互操作。它用scalac这个编译器源文件编译成Java的class文件(即在JVM上运行的字节码)。你可以从Scala中调用所有的Java类库,也同样可以从Java应用程序中调用Scala的代码。用David Rupp的话来说,

它也可以访问现存的数之不尽的Java类库,这让(潜在地)迁移到Scala更加容易。

这让Scala得以使用为Java1.4、5.0或者6.0编写的巨量的Java类库和框架,Scala会经常性地针对这几个版本的Java进行测试。Scala可能也可以在更早版本的Java上运行,但没有经过正式的测试。Scala以BSD许可发布,并且数年前就已经被认为相当稳定了。

(二)函数式编程

函数式编程:将所有复杂的问题的解决,拆分为若干函数的处理。每一个函数可以去实现一部分功能,利用很多次函数的处理,最终解决问题。

函数式编程相对于面向对象编程,更加抽象,好处是,代码可以非常简洁,更多采用常量而不是变量来解决问题,这样额外带来的好处:在线程并发时,可以减少甚至杜绝多线程并发安全问题,特别适合于应用在处理高并发场景、分布式场景下的问题。函数式编程可以使用高阶函数,函数是一等公民,可以更加灵活的进行程序的编写。

函数式编程并不是面向对象编程的发展,而是另外一种解决问题的思路,两者之间也并没有绝对的好坏之分,在不同的场景中各有各的优缺点。

(三)Scala特性

“scala语言的基本特性:简洁、兼容、可扩展和静态类型 Scala是Scalable Language的简称,是一种函数式面向对象语言。其中所有的基本数据类型都是面向对象的。Scala的函数式编程思路可以让代码编写更加简洁,并且Scala的静态类型可以在编译时检查代码的安全性和一致性,有助于避免复杂应用程序中的错误。 scala是面向对象的,函数式编程语言,具有较强的交互性”

1、一切都是对象

Scala里一切都是对象,这大概和Python很像,因为即便是数字1都有一系列的方法,所以我们可以调用1.toDoubleInt类型的1转换为Double类型的1

2、一切都是函数

表现为可以重载操作符,跟Python很像,在一定程度上ScalaJavaPython生的孩子,只不过遗传基因比较大的卵子是Java提供的,而比较小的那颗精子则是Python提供的。

3、一切都是表达式

Scala里,一切都是表达式,即使像if(){}else{}这样的语句块也是有返回值的。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值