📜  Scala中的无参数方法

📅  最后修改于: 2022-05-13 01:55:09.627000             🧑  作者: Mango

Scala中的无参数方法

先决条件 - Scala |职能

参数方法是不带参数的函数,由没有任何空括号定义。无参数函数的调用应该在没有括号的情况下完成。这使得defval的更改无需更改客户端代码,这是统一访问原则的一部分。

例子:

// Scala program to illustrate
// Parameterless method invocation
class GeeksforGeeks(name: String, ar: Int)
{
    // A parameterless method
    def author = println(name)
    def article = println(ar)
      
    // An empty-parenthesis method
    def printInformation() = 
    {
        println("User -> " + name + ", Articles -> " + ar)
    }
}
  
// Creating object 
object Main 
{ 
    // Main method
    def main(args: Array[String]) 
    { 
          
        // Creating object of Class 'Geeksforgeeks'
        val GFG = new GeeksforGeeks("John", 50)
        GFG.author     // calling method without parenthesis
    } 
} 

输出:

John

使用无参数方法通常有两种约定。一种是没有任何参数时。第二个是方法不改变可变状态时。必须通过定义具有括号副作用的方法来避免调用看起来像字段选择的无参数方法。
使用括号调用无参数方法的示例给出编译错误。

例子:

// Scala program to illustrate
// Parameterless method invocation
class GeeksforGeeks(name: String, ar: Int)
{
    // A parameterless method
    def author = println(name)
    def article = println(ar)
      
    // An empty-parenthesis method
    def printInformation() = 
    {
        println("User -> " + name + ", Articles -> " + ar)
    }
}
  
// Creating object
object Main 
{ 
    // Main method
    def main(args: Array[String]) 
    { 
          
        // Creating object of Class 'Geeksforgeeks'
        val GFG = new GeeksforGeeks("John", 50)
        GFG.author()     //calling method without parenthesis
    } 
} 

输出:

注意:空括号方法可以在不带括号的情况下调用,但始终建议并接受作为约定调用带括号的空括号方法。