Scala中的无参数方法
Scala无参数方法
一种不从调用代码接受任何参数的方法。它还表示不会有任何空括号。这些是Scala中特殊的方法类型,这些方法特别进行了初始化和调用。要初始化无参数方法,您需要使用带def关键字的名称,但不带“()”括号。在调用该方法时,我们也将避免使用 “()”括号。
语法:
def method_name = code_to_be_executed
说明无参数方法的程序
class calculator(a: Int, b: Int) { def add = println("a+b = " + (a+b)) def subtract = println("a-b = " + (a-b)) def product = println("a*b = "+ (a*b) ) def division = println("a/b = " + (a/b)) } object Main { def main(args: Array[String]) { val calc = new calculator(1250, 50) println("value of a = 1250 and b = 50") calc.add calc.subtract calc.product calc.division } }
输出结果
value of a = 1250 and b = 50 a+b = 1300 a-b = 1200 a*b = 62500 a/b = 25
说明:
此代码初始化一个计算器类,并在其中定义4个无参数的方法。这些方法用于加,减,乘和除值。这些方法直接打印计算值,不接受任何参数。将使用值1250和50创建类计算器的对象calc。然后,使用该calc对象,我们将调用执行操作并返回输出的所有四个方法。
无参方法在不带()括号的情况下调用。如果我们使用括号调用无参数方法,则会出现错误。
如果程序员错误地在函数调用的末尾加上了括号,则编译器将报告错误,指出:“单元不带参数”。
程序在使用括号调用无参数方法时显示错误
class calculator(a: Int, b: Int) { def division = println("a/b = " + (a/b)) } object Main { def main(args: Array[String]) { val calc = new calculator(1250, 50) println("value of a = 1250 and b = 50") calc.division() } }
输出结果
/home/jdoodle.scala:12: error: Unit does not take parameters calc.division() ^ one error found
说明:
此代码与以前的代码具有相同的逻辑。区别只是在调用除法无参数方法时使用了括号。因此,编译器将给出错误:“单元不带参数”。
无参数方法与方法无参数
Scala在其方法中支持多种类型的参数传递。
但是这两种方法看起来很相似,但是功能不同。无参数方法在其调用中不接受参数并对其进行排序。但是没有参数的方法在其调用中接受void参数(不能将任何内容视为参数)。