第1章、 Scala语言概述

image

第1章、 Scala语言概述

==知识结构==

Scala这门课主要分为以下几个阶段进行学习。

  • 1、Scala语言概述
  • 2、Scala基础知识
  • 3、Scala数据结构
  • 4、Scala面向对象
  • 5、Scala函数式编程

1. scala语言概述

1.1、学习任务

1、了解Scala语言特点
2、学会配置Scala环境
3、配置IDE并用Scala写第一个程序

1.1、发展历史

Scala是Scalable Language的简写,是一门多范式的编程语言,

联邦理工学院洛桑的MartinOdersky于2001年基于Funnel的工作开始设计Scala。

Funnel是把函数式编程思想和Petri网相结合的一种编程语言。

Odersky先前的工作是Generic Java和javac(Sun Java编译器)。Java平台的Scala于2003年底/2004年初发布。.NET平台的Scala发布于2004年6月。该语言第二个版本,v2.0,发布于2006年3月。

截至2009年9月,最新版本是版本2.7.6 。Scala 2.8预计的特性包括重写的Scala类库(Scala collections library)、方法的命名参数和默认参数、包对象(package object),以及Continuation。

2009年4月,Twitter宣布他们已经把大部分后端程序从Ruby迁移到Scala,其余部分也打算要迁移。此外, Wattzon已经公开宣称,其整个平台都已经是基于Scala基础设施编写的。

1.2、大事记

  • 2001年,Scala 的设计在 EPFL 开始;
  • 2004年初,Java 版发布;
  • 2004年6⽉月,.NET 版发布;
  • 2006年3⽉月,Scala 2.0 Java 版发布;
  • 2011年5⽉月,Odersky和Jonas Bonér 创办 Typesafe;
  • 2012年,官⽅方停⽌止维护 Scala .NET 版;
  • 2014年,Scala 2.11.2 发布
  • 2019年,Scala 2.13.0 发布

2、Scala简介

2.1、编程范式

  • 2.1.1、命令式编程
    是一种描述电脑所需作出的行为的编程典范。几乎所有电脑的硬件工作都是指令式的;命令式编程关心解决问题的步骤,如JAVA,C等
  • 2.1.2、函数式编程
    它将电脑运算视为数学上的函数计算,并且避免使用程序状态以及易变对象。函数编程语言最重要的基础是λ演算(lambda calculus)。而且λ演算的函数可以接受函数当作输入(引数)和输出(传出值)。函数式编程关心的是数据的映射,重视数据集之间的变换。

2.2、Scala语言特点

  • 1、多范式编程语言,兼具命令式与函数式

面向对象
一切值都是对象,从这一点来说,是一门纯面向对象的语言,对象的类型和行为由类和特质描述。这方面类似java。

函数式
在scala中,一切函数都是值,函数也可作为另一个函数的参数,因此scala是一门函数式语言。这一点又和python类似。因此我们说scala集成了java和python的特性

  • 2、基于JVM,可以和java无缝混编
  • 3、语言简洁优雅
    如果你写过java,就会对这一点体会深刻,scala几行代码就能搞定java一个很复杂的操作,就代码量而已,scala会少很多
  • 4、Scala商业成功
    Spark,Kafka,因此Scala广泛应用于大数据领域

2.3、scala生态圈

image

我们这里scala主要是以大数据应用领域为基础的,因此我们的课程主要包括scala的基础语法以及面向对象和函数式编程等,关于其他的不在我们这么课计划中。

3、环境配置

此处的版本为,JDK-1.8.0_211,Scala-2.11.12

==切记不要装最新版本的,后期会出现很多版本兼容的问题==

jdk环境配置-win版

Scala依赖JDK环境,首先确保本机已安装JDK相关环境

image

3.1、下载

3.1.1、win版配置

下载地址

在此处下载响应的版本

image

按照提示一步一步安装,同JDK。

3.1.2、环境变量配置

右击我的电脑,单击"属性",进入如图所示页面。下面开始配置环境变量,右击【我的电脑】--【属性】--【高级系统设置】--【环境变量】,如图:

image

在变量命中输入SCALA_HOME,变量值中输入Scala的安装目录。

image

设置Path变量
[图片上传失败...(image-940d4f-1560333533701)]
环境设置好了之后输入,调出cmd,输入scala,成功可以看到如下信息
image

3.1.2、mac版配置

mac版安装同上,下载相应的mac版本,按照提示一路安装即可。

mac版本的配置

配置SCALA_HOME,然后在Path中添加SCALA_HOME即可

export SCALA_HOME=/Users/sunliangliang/Documents/develop-tools/scala-2.11.12
PATH=$JAVA_HOME/bin:$SCALA_HOME/bin:$PATH:.

安装成功后如下图所示

image

4、第一个Scala程序

4.1、交互式环境

image

我们看到可以直接打印输出,也可以直接计算。

4.2、IDEA和Scala

  • 1、idea安装Scala插件
    Prefrences->Plugins->search("scala"),安装即可
    image
  • 2、idea配置Scala SDK
    第一次配置的时候需要配置SDK

image

Browse找到Scala的安装目录,选中SDK配置成功。

  • 3、创建项目
image
  • 4、第一个demo
package com.tedu.fast

/**
  * Describe: 
  *
  * @Author sunliang
  * @Since 2019/06/12
  */
object Helloworld {

  def main(args: Array[String]): Unit = {
    print("Hello world")
  }
}

代码结构如下

image

至此我们就完成了IDEA和SCALA的整合

==注意事项==

image

类型Kind选择的是Object不是Class,(Object可以编译有main函数入口,因此可以在IDEA中直接Run)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容