Scala中的值类

值类是Scala---中的一种特殊机制,用于帮助编译器避免分配运行时对象。

这是通过定义AnyVal的子类来完成的。它唯一的参数是要重新定义其值的数据类型。这用于重新定义除hashCode和equals之外的所有值类型。

可以重新定义的值类型为CharIntFloatDoubleLongShortByteUnitBoolean

语法:

在Scala---中创建值类的语法,

case class class_name(val val_ name : datatype) extends AnyVal

value类可以有一些方法,这些方法用于重新定义值或将对象创建时使用的值包装为不同的值。

关于值类需要记住的几点,

  1. 值类的主要目的是通过避免运行时分配来优化程序。

  2. 值类不能被其他类继承。

  3. 值类不能嵌套。

  4. 值类用于重新定义除hashCodeequals之外的所有值类型。

  5. 它只能有方法(def)作为其成员,即不允许任何变量。

Scala---程序了解值类的概念

//程序显示工作原理 
//Scala---中的value类

class valueClass(val str: String) extends AnyVal {
 def doubleprint() = str + str
}

object myObject {
 def main(args: Array[String]) {
  val obj = new valueClass("Scala--- ")
  println(obj.doubleprint())
 }
}

输出:

Scala--- Scala---

说明:

在这里,我们在Scala---中为字符串类型创建了一个名为valueClass的值类,该值类具有一个名为doubleprint的函数,该函数将字符串在对象中存储两次。

通常,值Class用于存储与对象中相同的数据,它仅用于提高性能。

什么是值类?

值类用作包装类等类型。而且,包装类的实例不是在编译时创建的,这可以提高性能,因为需要执行的初始化和编译时间更少。