欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > Scala总结(一)

Scala总结(一)

2025/3/31 16:23:19 来源:https://blog.csdn.net/2302_80567373/article/details/146549679  浏览:    关键词:Scala总结(一)

Scala简介

Scala 是 Scalable Language 的简写,是一门多范式的编程语言;是由 Martin Odersky 等人在 2003 年开发的,并于 2004 年首次发布;设计初衷是要集成面向对象编程和函数式编程的各种特性。Scala 运行在 Java 虚拟机上,并兼容现有的 Java 程序。Scala 源代码被编译成 Java 字节码,所以它可以运行于 JVM 之上,并可以调用现有的 Java 类库

Scala 特性

Scala特性分为面向对象特性、函数式编程、类型系统、扩展性、并发性、强大的标准库、与 Java 互操作性、模块化和可扩展性等

1.  面向对象特性:类和对象、继承和多态、抽象类和特质、封装

Scala 是一种高度表达性的编程语言,它结合了面向对象编程和函数式编程的最佳特性

2 .  函数式编程:高阶函数、不可变性、模式匹配、闭包

3.类型系统:静态类型、类型推断、泛型编程、类型系统扩展

Scala具备类型系统,通过编译时检查,保证代码的安全性和一致性。类型系统具体支持以下特性:泛型类、协变和逆变、标注、类型参数的上下限约束、把类别和抽象类型作为对象成员、复合类型、引用自己时显式指定类型、视图、多态方法

4.  扩展性:Scala提供了许多独特的语言机制,可以以库的形式轻易无缝添加新的语言结构:任何方法可用作前缀或后缀操作符、可以根据预期类型自动构造闭包

5.  并发性:Akka框架、Futures 和 Promises、Scala 并发集合

6.  强大的标准库:集合框架、字符串处理、IO操作

7.  与 Java 互操作性:无缝调用、Java标准库

8.  模块化和可扩展性特质(Traits)、隐式转换和参数

Scala语言的特点

优雅、速度快是Scala语言的特点的两大特点

Scala是静态编译的,所以速度会快很多,能融合到Hadoop生态圈:Hadoop现在是大数据事实标准,Spark并不是要取代Hadoop,而是要完善Hadoop生态。JVM语言大部分可能会想到Java,但Java做出来的API太丑,或者想实现一个优雅的API太费劲。 

学习Scala编程语言,为后续学习Spark和Kafka奠定基础

Scala 基础语法

Scala程序

分为交互式编程和脚本形式两种

交互式编程

交互式编程不需要创建脚本文件,可以通过以下命令调用:

脚本形式

我们也可以通过创建一个 HelloWorld.scala 的文件来执行代码,HelloWorld.scala 代码如下所示:

运行结果:

基本语法

  1. 区分大小写
  2. 类名:-对于所有的类名的第一个字母要大写    例:class MyFirstScalaClass
  3. 方法名称:所有的方法名称的第一个字母用小写   例:def myMethodName()
  4. 程序文件名:程序文件的名称应该与对象名称完全匹配,保存文件时,应该保存它使用的对象名称(记住Scala是区分大小写),并追加".scala"为文件扩展名。 (如果文件名和对象名称不匹配,程序将无法编译) 例:假设"HelloWorld"是对象的名称。那么该文件应保存为'HelloWorld.scala"
  5. def main(args: Array[String]-Scala程序从main()方法开始处理,这是每一个Scala程序的强制程序入口部分

标识符

Scala 可以使用两种形式的标志符,字符数字和符号

字符数字使用字母或是下划线开头,后面可以接字母或是数字,符号"$"在 Scala 中也看作为字母

符号标志符包含一个或多个符号,如+,:,? 等

Scala 内部实现时会使用转义的标志符,比如:-> 使用 $colon$minus$greater 来表示这个符号

混合标志符由字符数字标志符后面跟着一个或多个符号组成,比如 unary_+ 为 Scala 对+方法的内部实现时的名称。字面量标志符为使用"定义的字符串,比如 `x` `yield`

Scala 关键字

下表列出了 scala 保留关键字,我们不能使用以下关键字作为变量

Scala 注释

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

空行和空格

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

换行符

Scala是面向行的语言,语句可以用分号(;)结束或换行符。Scala 程序里,语句末尾的分号通常是可选的

Scala 包

定义包

Scala 使用 package 关键字定义包,在Scala将代码定义到某个包中有两种方式:

1.  Java 一样,在文件的头定义包名,这种方法就后续所有代码都放在该包中 

如:package com.runoobclass HelloWorld

2.些类似 C#,可以在一个文件中定义多个包

如:

package com.runoob {

  class HelloWorld }

引用

Scala 使用 import 关键字引用包

import java.awt.Color  // 引入Color

 import java.awt._  // 引入包内所有成员

 def handler(evt: event.ActionEvent) { // java.awt.event.ActionEvent

  ...  // 因为引入了java.awt,所以可以省去前面的部分}

import语句可以出现在任何地方,而不是只能在文件顶部。import的效果从开始延伸到语句块的结束。这可以大幅减少名称冲突的可能性

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词