Scala 变量命名、关键字语法

Scala基础语法

当编写Scala程序时,它可以被定义为通过调用彼此的方法进行通信的对象的集合。现在我们简单地看一下类,对象,方法和实例变量的含义。

  • 对象 - 对象有状态和行为。一个对象是类的一个实例。例如 - 狗有状态:颜色,名称,品种,它行为有:摇摆,吠叫和吃东西。
  • 类 -可以将类定义为描述与该类相关的行为/状态的模板/蓝图。
  • 方法 -一个方法基本上是一种行为。一个类可以包含很多方法。将逻辑代码写入的方法中,数据在方法中操纵并且执行所有的动作。
  • 字段 -每个对象都有其唯一的一组实例变量,称为字段。对象的状态是由分配给这些字段的值来创建的。
  • 闭包 - 闭包是一个函数,其返回值取决于在此函数之外声明的一个或多个变量的值。
  • 特征 -特征(Traits)封装了方法和字段定义,然后可以通过将它们混合到类中来重用它们,特征(Traits)用于通过指定支持的方法的签名来定义对象类型。

以下是Scala编程中的基本语法和编码约定。
区分大小写 - Scala是区分大小写的,比如标识符Hello和hello在Scala中表示不同的含义(对象)。
类名称 - 对于所有类名,第一个字母应为大写。如果使用多个单词来形成类的名称,则每个内部单词的第一个字母应该是大写。
示例 - class MyFirstScalaClass,class Employee*类等。
方法名称 - 所有方法名称应以小写字母开头。如果使用多个单词形成方法的名称,则每个内部单词的第一个字母应为大写。
示例 - def myMethodName(),def getName()等。
程序文件名 - 程序文件的名称应与对象名称完全匹配。保存文件时,您应该使用对象名称保存它(记住Scala是区分大小写的),并将.scala附加到文件名称的末尾。 (如果文件名和对象名不匹配,则程序将不会编译)。
示例 - 假设HelloWorld是对象名称。 那么文件应该保存为HelloWorld.scala。
def main(args:Array [String]) - Scala程序从main()方法开始,这是每个Scala程序的强制性部分。

Scala标识符

所有Scala组件都需要名称。用于对象,类,变量和方法的名称称为标识符。关键字不能用作标识符,标识符区分大小写。Scala支持四种类型的标识符。

  • 字母数字标识符
    字母数字标识符以字母或下划线开头,后面可以有更多的字母,数字或下划线。 $字符是Scala中的保留关键字,不应在标识符中使用。
    以下是合法的字母数字标识符 -
    age, salary, _value, __1_value
    以下是非法标识符 -
    $salary, 123abc, -salary
  • 运算符标识符
    运算符标识符由一个或多个运算符字符组成。运算符字符是可打印的ASCII字符,如:+,:,?,~或#。
    以下是合法运算符标识符 -,+,++,::: <?> :>

Scala编译器将在内部将操作符标识符转换成具有嵌入式 字符的合法 J a v a 标识符。例如,标识符 : − > 将被内部表示为 字符的合法Java标识符。例如,标识符:->将被内部表示为 字符的合法Java标识符。例如,标识符:>将被内部表示为colon m i n u s minus minusgreater。

  • 混合标识符
    混合标识符由字母数字标识符组成,后面跟着一个下划线和一个操作符标识符。
    以下是合法的混合标识符 -
    unary_+, myvar_=

这里,一元_+用作方法名称定义一个一元的+运算符,而myvar_=用作方法名定义一个赋值运算符(运算符重载)。
字面识别符
一个文字标识符是一个随意的字符串,包含在后面的勾号(…)中。
以下是合法的文字标识符 -
x <clinit> yield

Scala关键字

以下列表显示Scala中的保留字(关键字),这些保留字不能用作常量或变量或任何其他标识符名称。

数据类型说明
Byte8位有符号值,范围从-128至127
Short16位有符号值,范围从-32768至32767
Int32位有符号值,范围从-2147483648至2147483647
Long64位有符号值,范围从-9223372036854775808至9223372036854775807
Float32位IEEE 754单精度浮点值
Double64位IEEE 754双精度浮点值
Char16位无符号Unicode字符。范围从U+0000到U+FFFF
String一个Char类型序列
Boolean文字值true或文字值false
Unit对应于无值
Nullnull或空引用
Nothing每种其他类型的亚型; 不包括无值
Any任何类型的超类型; 任何对象的类型为Any
AnyRef任何引用类型的超类型

Scala程序结构

Scala包
scala包和java包的声明一样在源文件的第一行;scala包的导入和java包有些不同,java导入包使用import关键字
scala导入包也是import但是有几种不同的写法:

  1. 导入某个类:和java一样
  2. 导入某个包下的所有的类:这个scala和java的写法有些不一样,java是import导入某个包下的所有的类:这个scala和java的写法有些不一样,java是import java.util.*;这种写法,但是scala不能这种写法而是 import java.util._;
    3、导入某个包下的某几个类:java需要一个类一个类去导入,scala可以这样些 import java.uitl.{List,ArrayList}
  import java.awt.{Color, Font}
   // 重命名成员
   import java.util.{HashMap => JavaHashMap}
   // 隐藏成员
   import java.util.{HashMap => _, _} // 引入了util包的所有成员,但是HashMap被隐藏了

4、包的定义:
Scala 使用 package 关键字定义包,在Scala将代码定义到某个包中有两种方式:
4.1第一种方法和 Java 一样,在文件的头定义包名,这种方法就后续所有代码都放在该包中。 比如:

package com.runoob
 class HelloWorld

4.2第二种方法有些类似 C#,如:

package com.runoob {
  class HelloWorld 
 }

第二种方法,可以在一个文件中定义多个包。
注意: 默认情况下,Scala 总会引入 java.lang._ 、 scala._ 和 Predef._,这里也能解释,为什么以scala开头的包,在使用时都是省去scala.的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风吹千里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值