用final修饰的方法:不能被重写 注意:(1)在Scala中变量不需要用final修饰,因为val与var已经限制了变量是否可变 (2)final不能修饰特质,但是可以修饰抽象类 1 2 3 4 5 6 7 traitAnimal { defeat(name:String) finaldefsleep(name:String):Unit={ println(s"$name ->睡得天花乱坠") } } 如图代码,Pig继承...
Using new with Scala final case class Ask Question Asked 12 years, 9 months ago Modified 12 years, 9 months ago Viewed 3k times 6 In Chapter 22 of "Programming in Scala" book, the :: class (cons) is defined asfinal case class ::[T](hd: T, tl: List[T]) extends List[T] { /...
case class有一个好的特性就是它会在它的伴生对象中自动生成unapply方法,用于模式匹配. 如果没有unapply方法, 类将无法进行模式匹配, 关于unapply方法的写法可见如下代码示例: sealed trait Pet object Pet { final class Dog(val name: String) extends Pet {} final class Cat(val name: String) extends Pet ...
case class类的参数都是可以直接访问的val(不能被修改),但是实际上编译成的class字节码会对book.name转成book.name()方法调用。如下图所示,name声明的时候是加了final关键字,并且生成了对应的name()方法。printBookName()方法中使用到的book.name实际上是调用的name()方法。模式匹配 模式匹配是检查某个值(v...
case class类的参数都是可以直接访问的val(不能被修改),但是实际上编译成的class字节码会对book.name转成book.name()方法调用。如下图所示,name声明的时候是加了final关键字,并且生成了对应的name()方法。 printBookName()方法中使用到的book.name实际上是调用的name()方法。
package scalafinal case class Symbol private (name: String) { override def toString: String = "'" + name} 字符字面量 在Scala 字符变量使用单引号 ' 来定义,如下: 'a' '\u0041''\n''\t' 其中\ 表示转义字符,其后可以跟 u0041 数字或者 \r\n 等固定的转义字符。 ...
case class类的参数都是可以直接访问的val(不能被修改),但是实际上编译成的class字节码会对book.name转成book.name()方法调用。如下图所示,name声明的时候是加了final关键字,并且生成了对应的name()方法。 printBookName()方法中使用到的book.name实际上是调用的name()方法。
首先来看Dollar$.class packagecom.ruozedata.bigdata.scala04.casepkg;importscala.Option;importscala.Serializable;importscala.Some;importscala.runtime.AbstractFunction1;publicfinalclassDollar$extendsAbstractFunction1<String,Dollar>implementsSerializable{publicstaticfinalDollar$ MODULE$;publicfinalStringtoString(){re...
1、可变的用var修饰。常量用val修饰,相当于加上了final。 ps:声明变量的时候,可以省略类型,编译器会自动推导。类型确定之后就不能修改了。 2、scala中的数据类型分为两大类:①AnyVal(值类型)②AnyRef(引用类型)。它们两个都是对象。 3、AnyVal(值类型)包括:Double、Float、Long、Int、Short、Byte、Boolean、Ch...
final case class Some[+A](x: A) extends Option[A]= false def get = x } @SerialVersionUID(5066590221178148012L) // value computed by serialver for 2.11.2, annotation added in 2.11.4 case object extends Option[Nothing]= true def get = throw new NoSuchElementException("None.get") ...