当前位置: 首页 > news >正文

Scala基础语法与简介

·对象 -对象有属性和行为。例如:一只狗的状属性有:颜色,名字,行为有:叫、跑、吃等。对象是一个类的实例。

·类 -类是对象的抽象,而对象是类的具体实例。

·方法 -方法描述的基本的行为,一个类可以包含多个方法。

·字段 -每个对象都有它唯一的实例变量集合,即字段。对象的属性通过给字段赋值来创建。

第一个 Scala 程序

交互式编程

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

 

脚本形式

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


右击,选择“运行

 基本语法

Scala 基本语法需要注意以下几点:

·区分大小写-Scala是大小写敏感的,这意味着标识Hello 和 hello在Scala中会有不同的含义。

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

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

·程序文件名-程序文件的名称应该与对象名称完全匹配(新版本不需要了,但建议保留这种习惯)。
保存文件时,应该保存它使用的对象名称(记住Scala是区分大小写),并追加".scala"为文件扩展名。 (如果文件名和对象名称不匹配,程序将无法编译)。
示例: 假设"HelloWorld"是对象的名称。那么该文件应保存为'HelloWorld.scala"

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

 

标识符

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

字符数字使用字母或是下划线开头,后面可以接字母或是数字,符号"$"在 Scala 中也看作为字母。然而以"$"开头的标识符为保留的 Scala 编译器产生的标志符使用,应用程序应该避免使用"$"开始的标识符,以免造成冲突。

Scala 的命名规则采用和 Java 类似的 camel 命名规则,首字符小写,比如 toString。类名的首字符还是使用大写。此外也应该避免使用以下划线结尾的标志符以避免冲突。符号标志符包含一个或多个符号,如+,:,? 等,比如:

+ ++ ::: < ?> :->

Scala 内部实现时会使用转义的标志符,比如:-> 使用 $colon$minus$greater 来表示这个符号。因此如果你需要在 Java 代码中访问:->方法,你需要使用 Scala 的内部名称 $colon$minus$greater。

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

你可以在"之间使用任何有效的 Scala 标志符,Scala 将它们解释为一个 Scala 标志符,一个典型的使用为 Thread 的 yield 方法, 在 Scala 中你不能使用 Thread.yield()是因为 yield 为 Scala 中的关键字, 你必须使用 Thread.`yield`()来使用这个方法。

 

Scala 特性

面向对象特性

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

 

·类和对象: Scala 支持类和对象,可以定义属性和方法。

·继承和多态: 支持类的继承和多态,可以创建层次结构和重用代码。

·抽象类和特质: 可以定义抽象类和特质(traits),用于定义接口和实现部分行为。

·封装: 支持访问控制修饰符(public、protected、private),实现数据的封装。

函数式编程

·高阶函数: 函数可以作为参数传递给另一个函数,或者从另一个函数返回。

·不可变性: 默认使用不可变数据结构,有助于避免副作用,提高代码的并发安全性。

·模式匹配: 提供强大的模式匹配功能,可以解构复杂数据结构,进行条件判断。

·闭包: 支持闭包,可以捕获并记住其创建时的变量。

类型系统

静态类型

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

·泛型类

·协变和逆变

·标注

·类型参数的上下限约束

·把类别和抽象类型作为对象成员

·复合类型

与 Java 互操作性

·无缝调用: Scala 可以直接调用 Java 代码,并且可以在 Java 中调用 Scala 代码。

·Java标准库: 可以使用 Java 的标准库和框架,利用其丰富的生态系统。

 

 

相关文章:

  • [OS_4] 数学视角 | 多状态 | 模型检查器 | 程序验证(math)
  • 掌握文件权限:理解Linux chmod
  • XS2105S/M——IEEE 802.3af/at 兼容、用电设备接口控制器集成功率 MOSFET,可替代TMI7302A/D和SD4923
  • MDC的原理是什么?
  • k8s存储介绍(一)configmap
  • Windows中安装git工具
  • /usr/bin/mysqldump: Permission denied问题分析
  • Redis原理:setnx
  • 基于Springboot的网上订餐系统 【源码】+【PPT】+【开题报告】+【论文】
  • 深入剖析C++中的哈希表:从STL到底层实现
  • 2000-2019年各省地方财政罚没收入数据
  • 测试环境项目启动redis报错
  • 智能任务分配:Python高并发架构设计
  • 调速电机怎么测量好坏
  • 无人船信号探测与对接技术解析!
  • 【Linux】应用层协议 HTTP
  • 【MySQL】验证账户权限
  • Mysql-基础和DDL
  • DeepSeek 为何能在短时间内超过 ChatGPT?—— 技术变革与成本重构的双重胜利
  • Spring AI Alibaba EmbeddingModel使用
  • 国内站长做国外网站/企业员工培训课程内容
  • 做一个展示型网站要多少钱/免费找精准客户的app
  • 汉服网站的建设/美橙互联建站
  • 政府为什么要建设网站/小说关键词提取软件
  • 做网络推广选择哪个网站好/百度推广代理商返点
  • 网站关键词如何做/有什么公司要做推广的