Scala起源

Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言、并集成面向对象编程和函数式编程的各种特性。

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开发的框架
1.Spark是使用Scala编程语言开发的。开发Spark程序可以使用Java、Python和Scala,但是Scala是最优雅的方式。

2.Kafka也是使用Scala编写的。

3.基于JVM的语言更融入Hadoop生态圈

Scala的优势
■多范式编程:面向对象编程、函数式编程
■表达能力强,代码精简

面向对象特性
■每个值都是对象
■对象的数据类型和行为由类(Class) 和特征(Trait, 类似于interface )描述
■利用特征实现混入式多重继承

Scala与Java有着相同的原始数据类型

Scala数据类型层次结构

静态类型
Scala具备类型系统,通过编译时检查,保证代码的安全性和一致性。类型系统具体支持以下特性:

泛型类
协变和逆变
标注
类型参数的上下限约束
把类别和抽象类型作为对象成员
复合类型
引用自己时显式指定类型
视图
多态方法

Scala环境安装

1.scala官网下载安装包安装 https://www.scala-lang.org/download/
2.配置scala的环境变量SCALA_HOME
3.下载Scala的路径最好和java的jdk同一路径下,当然必须要有jdk
4.安装好以后到系统cmd窗口输入命令scala,当出现scala时,说明scala安装成功了,如下图所示:

IDEA中安装Scala插件

1.找到安装Scala插件的官网
https://plugins.jetbrains.com/plugin/1347-scala/versions
选择Versions,然后找和你IDEA版本一样的scala插件。
注意
版本一定要一致连月份也要一样,如果没有匹配的月份,就用下个月份的,然后点击最右边的向下箭头,就可以下载了,下载好后记住存放位置。

2.退出到IDEA界面右下角选择plugins,找到右上角的齿轮标志或者(Install plugin from disk),

IDEA版本不一样,新的版本会在右上角出现一个齿轮标志,如上图所示,我的出现在右下角的Install plugin from disk,点击就好了。
找到你下载的版本插件选择好点击OK后,点击右上角Restart Intellij IDEA,如下图所示

等待自己重启,这时插件就已经安装好了!

创建Scala Maven工程

1.创建一个普通的maven工程File->Project->Maven(注意:maven工程是Java工程)选择的时候,不仅有maven,还会有scala供你选择,说明插件安装成功了

2.引入scala-library依赖,注意版本要和自己安装的scala版本保持一致

3.在src/main/下重新建一个directory命名scala和java同级,也就是src/main/scala,
右键单击scala选择 Mark Directory as ,点击 Sources Root,如下图所示
4.导入scala的各种包,选择右上角的文件图标,点击后选择Libraries,旁边右上角有个"+"单击后选择Scala SDK 找到你的scala版本,接下来就直接点击确定,这时scala的各种包就导好了!或者在pom.xml引入Scala的依赖包,一样可以!

5.然后右键单击scala的文件夹,选择New找到Scala Class 就可以创建一个scala 类了,创建类名后,把Class换成Object就可以愉快的操作Scala了,下图所示

pom.xml配置
在dependencies中引入依赖包

      <dependency><groupId>org.scala-lang</groupId><artifactId>scala-library</artifactId><version>2.11.8</version></dependency>

语法规范

Scala 基本语法需要注意以下几点:
区分大小写 - Scala是大小写敏感的,这意味着标识Hello 和 hello在Scala中会有不同的含义

类名 - 对于所有的类名的第一个字母要大写。
如果需要使用几个单词来构成一个类的名称,每个单词的第一个字母要大写。

方法名称 - 所有的方法名称的第一个字母用小写。
如果若干单词被用于构成方法的名称,则每个单词的第一个字母应大写。
例如:def myMethodName()

def main(args: Array[String]) - Scala程序从main()方法开始处理,这是每一个Scala程序的强制程序入口部分。

Scala 注释
Scala 类似 Java 支持单行和多行注释。多行注释可以嵌套,但必须正确嵌套,一个注释开始符号对应一个结束符号。注释在 Scala 编译中会被忽略。

空行和空格
一行中只有空格或者带有注释,Scala 会认为其是空行,会忽略它。标记可以被空格或者注释来分割。

换行符
Scala是面向行的语言,语句可以用分号(;)结束或换行符。Scala 程序里,语句末尾的分号通常是可选的。如果你愿意可以输入一个,但若一行里仅
有一个语句也可不写。另一方面,如果一行里写多个语句那么分号是需要的。

Scala 转义字符

Scala 变量

在 Scala 中,使用关键词 “var” 声明变量,使用关键词 “val” 声明常量。
示例声明变量: var myVar : String = “Foo”
声明常量: val myVal : String = “Too”
注意
以上定义了常量 myVal,它是不能修改的。如果程序尝试修改常量 myVal 的值,程序将会在编译时报错。

变量类型声明

变量的类型在变量名之后等号之前声明。
语法格式如下:
var VariableName : DataType [= Initial Value]

val VariableName : DataType [= Initial Value]

变量类型引用

在 Scala 中声明变量和常量不一定要指明数据类型,在没有指明数据类型的情况下,其数据类型是通过变量或常量的初始值推断出来的。
所以,如果在没有指明数据类型的情况下声明变量或常量必须要给出其初始值,否则将会报错。
示例:
var myVar = 10;
val myVal = “Hello, Scala!”;

Scala 多个变量声明

示例:xmax, ymax都声明为100
val xmax, ymax = 100;

后续会有更多关于Scala的 详细使用方法,记得关注小编!

Scala语言基础详解,并在IDEA中安装Scala插件相关推荐

  1. c 语言中 %是什么运算符,C 语言基础----详解C中的运算符

    C语言中又有哪些运算符呢? 如下所示: ※ 算术运算符 ※ 赋值运算符 ※ 关系运算符 ※ 逻辑运算符 ※ 三目运算符 C语言基本算术运算符如下表: 除法运算中注意: 如果相除的两个数都是整数的话,则 ...

  2. 【BigData】Scala语言的简要介绍以及在window下安装Scala

    Spark是专为大规模数据处理而设计的快速通用的计算引擎,它是用Scala语言开发实现的.大数据技术本身就是数据计算的技术,而Scala既有面向对象组织项目工程的能力,又具备计算数据的功能,同时与Sp ...

  3. 服务器2012r2系统安装数据库,数据库图文详解Windows Server2012 R2中安装SQL Server2008...

    入手一台Windows Server2012云服务器,搭建一下服务环境,选用SQL Server2008 直奔主题,下好安装镜像后,直接双击 选择运行程序而不获取帮助 如图: 进入安装中心后选择 安装 ...

  4. 32位jdk_详解在Linux系统中安装JDK

    本文以在CentOS 7.6中安装JDK8为例进行安装,其他系统和版本都是大同小异的. 下载 进入Oracle官方网站的下载页面. 根据Linux系统的位数选择要下载的压缩包.怎么知道Linux系统的 ...

  5. 图文详解在Windows系统中安装JDK

    本文以在Windows10中安装JDK8为例进行安装,其他系统和版本都是大同小异的. 下载 进入Oracle官方网站的下载页面:https://www.oracle.com/technetwork/j ...

  6. 详解在Linux系统中安装JDK

    本文以在CentOS 7.6中安装JDK8为例进行安装,其他系统和版本都是大同小异的. 下载 进入Oracle官方网站的下载页面. 根据Linux系统的位数选择要下载的压缩包.怎么知道Linux系统的 ...

  7. Turtle 模块基础详解-画曲线

    在<Turtle 模块基础详解-画直线>中,我们已经介绍了如何导入 turtle 库以及使用 turtle 库来画直线段图形.本文将继续介绍 turtle 库高阶用法,如何使用 turtl ...

  8. python语言编程基础-Python语言入门详解!快速学成Python!

    原标题:Python语言入门详解!快速学成Python! 很多技能是被职场所需要的,但很可惜... 这些技能在大学中并学习不到. 大学和职场现实存在的横沟对大部分同学来说难以跨越或碰得头破血流... ...

  9. python语言入门m-Python语言入门详解!快速学成Python!

    今日主题 "Python语言入门详解" 近两年来,Python语言借着数据科学和人工智能的"东风"成为了最流行的编程语言--街头巷尾人们口口相传.同时,Pyth ...

最新文章

  1. 清除浮动(clearfix)
  2. 【ARM】Tiny4412裸板编程之按键
  3. 【luogu P1343 地震逃生】 题解
  4. db2 查杀死锁进程
  5. vim 显示行号_Vim给文件加行号,这通惊为天人的操作没sei了!文末天书慎点
  6. 软件测试工程师简历模板(三年经验)
  7. jsoniter与原生json对比
  8. C语言利用getchar()与while循环解决跳步问题
  9. 19.首页异步数据的获取
  10. linux安装软路由,软路由安装设置教程【详细步骤】-太平洋IT百科手机版
  11. Java教程-Java 程序员们值得一看的好书推荐
  12. 数据分析型产品的需求分析6大步骤
  13. 51实现todos-完整js
  14. 02 who——open、read、close
  15. SQL注入题型(手工注入+sqlmap)
  16. 两款Windows系统优化工具
  17. 知识图谱本体建模之RDF、RDFS、OWL详解
  18. vue 下载word文档时谷歌浏览器正常,IE下载文件损坏
  19. salad --06
  20. 任意离散点曲线求交点c++实现

热门文章

  1. parser.add_argument(),里面的参数,如果有--,表示是可选参数,没有--的话,意味着是必选参数
  2. Could not load the Tomcat server configuration at
  3. RedisTemplate 保存数据的键值通过rdm可视化工具查看乱码
  4. 前端程序员入门、进阶必备的5大网站,你知道几个?
  5. 第五届“传智杯”全国大学生计算机大赛(练习赛)前四题题解
  6. 吐血整理————当代程序员必备的神器大全
  7. 2022-03-01 快速搭建raft集群
  8. 为什么很多人在说做嵌入式驱动没前途?搜工作还是发现有很多招嵌入式的职位啊,linux驱动就真的没有前途吗?
  9. java .long.math.sgn_Java的数值类型转换
  10. spingboot:登出功能