下图阐述了类型层次结构的一个子集。 1. Scala类型层次结构 Any是所有类型的超类型,也称为顶级类 型。它定义了一些通用的方法如equals、hashCode和toString。Any有两个直接子类:AnyVal和AnyRef。 AnyVal代表值类型。有9个预定义的非空的值类型分别是:Double、Float、Long、Int、Short、Byte、Char、Unit和Boolean。Un...
此时这个表达式的类型是公共超类型Any。 3、如果else缺失了,比如:if(x > 0) 1 那么很可能if语句没有输出值,但是在Scala中,每个表达式都有值,此时,Scala提供了一个Unit类,写作(),上面的语句等价于: if(x > 0) 1 else ()4、赋值语句的值是Unit类型的,所以 x = y = 1 //这样是错的 2、while的使用...
object Main { defmain(args: Array[String]): Unit = {//集合的遍历,i <- 集合// to确定区间for(i <-1to10) { println(i) }// 1,2,3,4,5,6,7,8,9,10//util确定区间for(i <-1until10){ println(i) }// 1,2,3,4,5,6,7,8,9//步长写法1for(i <-1to (10,2)) println(i)...
Scala语言虽然是构建在JVM体系之上的,但为了适应函数式编程的需要,它的语法和Java几乎完全不同,在很多基础层面——比如类型系统——也是自成一派的。在Scala类型系统中,Null、Nothing、Nil、None、Unit这些类型看起来似乎都表达“空”的语义,但实际上很有一些区别,容易混淆。 官方文档的class hierarchy diagram: Null ...
特殊类型Unit表示无值,相当于Java中的voidscala.Unit 特殊类型Null单例对象,表示所有引用类型的空值scala.Null 特殊类型Nothing表示无返回值类型,是所有类型的子类型scala.Nothing 特殊类型Any所有类型的超类型scala.Any 特殊类型AnyRef所有引用类型的超类型,等价于Java中的Objectscala.AnyRef ...
Nil是一个空的List.可以定义为List[Nothing]。 val b:List[Nothing]=List()println(Nil)println(b==Nil) 结果为: List()true 5.Unit Unit表示无值。常用在方法里,表示没有返回值。 6.Any Any是所有的类的超类。不知道数据类型时,常被推断为Any。AnyRef是Any的引用类型的基类。
defmain(args:Array[String]):Unit={ println("Hello, world!") } } 运行实例 » 将以上代码保存为 HelloWorld.scala 文件,执行以上 scala 程序(你也可以直接在线执行): $ scalacHelloWorld.scala// 把源码编译为字节码$ scalaHelloWorld// 把字节码放到虚拟机中解释运行 ...
Unit类型用来标识过程,也就是没有明确返回值的函数。 由此可见,Unit类似于Java里的void。Unit只有一个实例——( ),这个实例也没有实质意义 objectTestSpecialType{ defmain(args:Array[String]):Unit={ defsayOk:Unit={// unit表示没有返回值,即void ...
unit[英][ˈju:nɪt][美][ˈjunɪt]n.单位,单元; 装置; 个体; [数]单位数;复数:units 易混淆单词:UnitUNIT 以上结果来自金山词霸 例句:1.Unit 5 go with transportation!第五单元乘坐交通工具去!--- 如有疑问欢迎追问!满意请点击右上方【选为满意回答】按钮 ...
Scala语言中Null/Nothing/Nil/None/Unit的理解 Prologue Scala语言虽然是构建在JVM体系之上的,但为了适应函数式编程的需要,它的语法和Java几乎完全不同,在很多基础层面——比如类型系统——也是自成一派的。在Scala类型系统中,Null、Nothing、Nil、None、Unit这些类型看起来似乎都表达“空”的语义,但实际上很有一些...