scala学习笔记二:注释、变量、数据类型,关键字

59 阅读2分钟

scala学习笔记



一、注释

1)单行注释://

//这是单行注释

2)多行注释:

/*
多行
注释
*/

3.文档注释:

/**
这是文档
注释
*/
scaladoc -d E:/path helloworld.scala生成对应的文档注释文件

二、变量

var 定义变量,val 定义常量(不可变),

  • 类型可加可不加,scala 会自动做类型推断
  • 变量命名必须已字母或者下划线开头,不能已数字开头
  • *必须要有初始值
  • 类型确定后,就不能修改(强数据类型语言)
var a:Int=10
var b=11
val c:String="hello"

跟java 对比一下

int a=10;
final String b="helloWorld";
  1. 类型必须写,
  2. 常量前加final修饰
  3. 每行;结尾
  4. 可以不用在定义时候赋值(初始化)

三、数据类型

1.类型层次

在这里插入图片描述 Any是所有类型的超类型(父类),也称为顶级类 型。它定义了一些通用的方法如equals、hashCode和toString。Any有两个直接子类:AnyVal和AnyRef。

AnyVal代表值类型。有9个预定义的非空的值类型分别是:Double、Float、Long、Int、Short、Byte、Char、Unit和Boolean。Unit是不带任何意义的值类型(类比void),它仅有一个实例可以像这样声明:()。所有的函数必须有返回,所以说有时候Unit也是有用的返回类型。 在这里插入图片描述

AnyRef代表引用类型。所有非值类型都被定义为引用类型。在Scala中,每个用户自定义的类型都是AnyRef的子类型。如果Scala被应用在Java的运行环境中,AnyRef相当于java.lang.Object。

Nothing是所有类型的子类型,也称为底部类型。没有一个值是Nothing类型的。它的用途之一是给出非正常终止的信号,如抛出异常、程序退出或者一个无限循环(可以理解为它是一个不对值进行定义的表达式的类型,或者是一个不能正常返回的方法)。

Null是所有引用类型的子类型(即AnyRef的任意子类型)。它有一个单例值由关键字null所定义。Null主要是使得Scala满足和其他JVM语言的互操作性,但是几乎不应该在Scala代码中使用。我们将在后面的章节中介绍null的替代方案

2.类型转换

在这里插入图片描述 这个转换是单向的(由小到大,不可逆的,否则会丢失精度


四、关键字

定义标识符的的时候尽量避开这些保留的关键字 Scala有39个关键字: • package, import, class, object, trait, extends, with, type, forSome • private, protected, abstract, sealed, final, implicit, lazy, override • try, catch, finally, throw • if, else, match, case, do, while, for, return, yield • def, val, var • this, super • new • true, false, null