Scala Null, null, Nil, Nothing, None, 和 Unit

Scala Null, null, Nil, Nothing, None, 和 Unit

Scala中的空值由Null , null , Nil , Nothing , None和Unit表示。这些空值的解释如下。

  • null:

    对象、字符串等引用类型可以为空,Int、Double、Long等值类型不能为空,Scala中的null类似于Java中的null。

  • Null:

    它是一个特质,是每个参考类型的一个子集,但根本不是价值类型的一个子类型,Null的一个实例是null。参考类型可以被分配为null,但价值类型不能被分配为null。

示例 :

// Scala program using Null and null
  
// Creating object
object GfG
{
  
    // Main method
    def main(args: Array[String]) 
    {
        // Method that takes a parameter of type Null
        def usingnull(thing: Null): Unit = 
        { 
            println("GeeksForGeeks"); 
        }
  
        /*error: type mismatch;
  
        found   : java.lang.String("hey")
  
        required: Null*/
        //usingnull("hey")
  
        // passing null itself
        usingnull(null)
    }
}

输出 :

GeeksForGeeks

在这里,使用Null的方法包括一个Null类型的参数,我们只能传递两种东西:Null本身或Null类型的引用。

  • Nothing:
    Nothing也是一个特质,它没有实例。它是每个不同类型的一个子集。这个Trait的主要动机是为那些持续抛出异常的方法提供一个返回类型,也就是说,通常不会有一次返回。它也有助于为Nil提供一个类型。
  • Unit:
    Unit在Scala中类似于Java中的void,它被用作函数的返回类型,当所述函数不返回任何东西时,它就会与函数一起使用。
    示例 :
// Scala program using Unit type
  
// Creating object
object GfG
{
  
    // Main method
    def main(args: Array[String]) 
    {
        // Method return type is unit
        def printNumber(num: (Int) => Unit) = 
        {
  
            num(1); 
            num(2); 
            num(3);
        }
          
        printNumber(println)
    }
}

输出 :
“`scala 1
2
3

<pre><code class=" line-numbers"><br />在这里,方法printNumber接受一个名为num的参数,其类型为**(Int) = > Unit **。这意味着num是一个由Int类型的单个参数组成的方法。方法printNumber的返回类型为Unit,这意味着num不应该返回一个值。

* Nil:
无被认为是一个列表,其中有零个元素。Nil的类型是List[Nothing],如上所述,Nothing没有实例,我们可以有一个被确认为荒废的List。

**示例:**
“`scala
// Scala program to show that
// Nil is an empty list
  
// Creating object
object GfG
{
  
    // Main method
    def main(args: Array[String]) 
    {
  
        // Displays empty list
        println(Nil)
    }
}

输出 :

List()

因此,我们可以看到返回的是一个空列表。

  • None:
    它是Scala的Option类的子类之一,用来避免给引用类型分配null。让我们看看一些例子。

示例 :

// Scala program to convert
// None to empty list
  
// Creating object
object GfG
{
  
    // Main method
    def main(args: Array[String]) 
    {
  
        // Displays empty list
        println(None.toList)
    }
}

输出 :

List()

这里,将返回一个空的List。

示例 :

// Scala program to test if
// None is empty or not
  
// Creating object
object GfG
{
  
    // Main method
    def main(args: Array[String]) 
    {
  
        // Displays true if empty
        // else false
        println(None.isEmpty)
    }
}

输出 :

true

因此,我们可以说None是空的,因为返回的是真。

示例 :

// Scala program to convert None
// to String
  
// Creating object
object GfG
{
  
    // Main method
    def main(args: Array[String]) 
    {
  
        // Displays String
        println(None.toString)
    }
}

输出 :

None

因此,None可以被转换为一个字符串。

示例 :

// Scala program of utilizing
// None with Scala's Option
  
// Creating object
object GfG
{
  
    // Main method
    def main(args: Array[String]) 
    {
        // Applying None with 
        // Scala's Option
        val p: Option[String] = None
  
        // Displays output
        println(p)
    }
}

输出 :

None

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程