📜  斯卡拉 |重复方法参数(1)

📅  最后修改于: 2023-12-03 15:26:14.430000             🧑  作者: Mango

Scala | 重复方法参数

在Scala中,可以使用重复参数列表来定义重复的方法参数。

定义重复参数列表

在Scala中,使用星号(*)作为类型标识符来定义重复参数列表。例如,以下方法定义了一个重复参数列表:

def concat(args: String*) = {
  var result = ""
  for (arg <- args) result += arg
  result
}

在上面的代码中,方法“concat”使用星号作为类型标识符来定义重复参数列表。这意味着在调用“concat”方法时,可以传递任意数量的参数。

调用重复参数列表

调用重复参数列表时,需要使用“:_*”语法将其他参数转换为重复参数列表。例如,以下代码调用了“concat”方法,并传递了两个参数:

val str1 = "Hello"
val str2 = "World"
val result = concat(str1, str2:_*)

在上面的代码中,我们首先定义了两个字符串变量“str1”和“str2”。然后,我们调用了“concat”方法,并传递了“str1”和“str2”作为方法参数。在传递“str2”参数时,我们使用了“:_*”语法将其转换为重复参数列表。

示例

以下示例演示了如何使用重复参数列表来计算数字的平均值:

def average(nums: Int*) = {
  var sum = 0
  for (num <- nums) sum += num
  sum / nums.length.toDouble
}

val avg1 = average(1, 2, 3, 4, 5)
val avg2 = average(10, 20, 30)

在上面的代码中,我们定义了一个名为“average”的方法,它使用重复参数列表来计算数字的平均值。我们首先定义了两个变量“avg1”和“avg2”,并分别调用了“average”方法,并传递了不同数量的参数。最后,我们使用“println”方法打印了平均值。

输出如下:

3.0
20.0
总结

在Scala中,重复参数列表为方法定义提供了强大的灵活性和可重用性。使用重复参数列表,您可以定义可以接受任意数量的参数的方法,并使用简洁的语法调用这些方法。