Scala的变量和数据类型前篇
Scala的变量和数据类型前篇
写在前面
- 操作系统:Windows10
- JDK版本:jdk1.8
- Maven版本:Maven-3.5.4
- Scala版本:Scala-2.12.11
- IDE工具:IntelliJ IDEA 2019.2.3
注释
Scala注释使用和Java完全一样。例子如下:
// 单行注释
/*
多行注释
*/
/**
* doc注释
*/
object ScalaComment{
def main(args: Array[String]): Unit = {
}
}
变量
变量是一种使用方便的占位符,用于引用计算机内存地址,变量创建后会占用一定的内存空间。基于变量的数据类型,操作系统会进行内存分配并且决定什么将被储存在保留内存中。因此,通过给变量分配不同的数据类型,你可以在这些变量中存储整数,小数或者字母。
语法声明
变量的类型在
变量名之后等号之前
声明,即:var | val 变量名 :变量类型 = 变量值
。例子如下:
var name : String = "whybigdata"
变量的类型如果能够通过变量值
推断
出来,那么可以省略
类型声明,这里的省略,并不是不声明,而是由Scala编译器在编译时自动声明编译
的。例子如下:
object ScalaVariable {
def main(args: Array[String]): Unit = {
// 因为变量值为字符串,又因为Scala是静态类型语言,所以即使不声明类型
// Scala也能在编译时正确的判断出变量的类型,这体现了Scala语言的简洁特性。
var name = "whybigdata"
val pwd = "123456"
}
}
变量初始化
Java语法中变量在使用前进行初始化就可以,但是Scala语法中是不允许的,必须
显示
进行初始化操作。例子如下:
object ScalaVariable {
def main(args: Array[String]): Unit = {
var name // Error
var name = "whybigdata" // OK
}
}
可变变量
值可以改变的变量,称之为
可变变量
,但是变量类型无法发生改变, Scala中可变变量使用关键字var
进行声明。例子如下:
object ScalaVariable {
def main(args: Array[String]): Unit = {
// 用户名称
var username : String = "whybigdata1"
username = "whybigdata2" // OK
username = true // Error
}
}
不可变变量
值一旦初始化后无法改变的变量,称之为
不可变变量
。Scala中不可变变量使用关键字val
进行声明, 类似于Java语言中的final关键字。例子如下:
object ScalaVariable {
def main(args: Array[String]): Unit = {
// 用户名称
val username : String = "whybigdata1"
username = "whybigdata2" // Error
username = true // Error
}
}
标识符
Scala 可以使用两种形式的标志符,字符数字和符号。
-
字符数字使用
字母
或是下划线
开头,后面可以接字母或是数字,符号$
在 Scala 中也看作为字母。然而以$
开头的标识符为保留的 Scala 编译器产生的标志符使用,应用程序应该避免使用$
开始的标识符,以免造成冲突。 -
Scala 的命名规范采用和 Java 类似的 camel 命名规范,首字符小写,比如
toString
。类名的首字符还是使用大写。此外也应该避免使用以下划线结尾的标志符以避免冲突。 -
Scala 内部实现时会使用转义的标志符,比如:
->
使用$colon$minus$greater
来表示这个符号。
例子如下:
// TODO 和Java一样的标识符命名规则
val name = "whybigdata" // OK
val name1 = "whybigdata0" // OK
//val 1name = "whybigdata0" // Error
val name$ = "whybigdata1" // OK
val $name = "whybigdata2" // OK
val name_ = "whybigdata3" // OK
val _name = "whybigdata4" // OK
val $ = "whybigdata5" // OK
val _ = "whybigdata6" // OK
//val 1 = "whybigdata6" // Error
//val true = "whybigdata6" // Error
// TODO 和Java不一样的标识符命名规则
val + = "zhangsan" // OK
val - = "zhangsan" // OK
val * = "zhangsan" // OK
val / = "zhangsan" // OK
val ! = "zhangsan" // OK
//val @ = "zhangsan" // Error
val @@ = "zhangsan" // OK
//val # = "zhangsan" // Error
val ## = "zhangsan" // OK
val % = "zhangsan" // OK
val ^ = "zhangsan" // OK
val & = "zhangsan" // OK
//val ( = "zhangsan" // Error
//val ( = "zhangsan" // Error
//val ) = "zhangsan" // Error
//val = = "zhangsan" // Error
val == = "zhangsan" // OK
//val [ = "zhangsan" // Error
//val ] = "zhangsan" // Error
//val : = "zhangsan" // Error
val :: = "zhangsan" // OK
//val ; = "zhangsan" // Error
//val ' = "zhangsan" // Error
//val " = "zhangsan" // Error
val "" = "zhangsan" // OK
val < = "zhangsan" // OK
val > = "zhangsan" // OK
val ? = "zhangsan" // OK
val | = "zhangsan" // OK
val \ = "zhangsan" // OK
//val ` = "zhangsan" // Error
val ~ = "zhangsan" // OK
val :-> = "lisi" // OK
val :-< = "lisi" // OK
// 切记,能声明和能使用是两回事
Scala 中的标识符也不能是关键字或保留字,Scala中关键字或保留字如下图所示:
前篇结束!
- 点赞
- 收藏
- 关注作者
评论(0)