斯卡拉 |重复方法参数
在 Scala 中,支持重复方法参数,这在我们不知道方法需要的参数数量时很有帮助。 Scala 的这个属性用于将无限参数传递给定义的方法。
要点:
- 具有重复参数的方法应该具有相同类型的每个参数。
- 重复参数始终是定义的方法的最后一个参数。
- 我们定义的方法,只能有一个参数为重复参数。
例子:
// Scala program of repeated
// parameters
// Creating object
object repeated
{
// Main method
def main(args: Array[String])
{
// Creating a method with
// repeated parameters
def add(x: Int*)
: Int =
{
// Applying 'fold' method to
// perform binary operation
x.fold(0)(_+_)
}
// Displays Addition
println(add(2, 3, 5, 9, 6, 10, 11, 12))
}
}
输出:
58
为了添加任意数量的额外参数,我们需要在所使用的参数类型后面加上*标记。
重复参数的更多示例:
- 可以在重复参数方法中传递一个数组。
例子:// Scala program of repeated // parameters // Creating object object arr { // Main method def main(args: Array[String]) { // Creating a method with // repeated parameters def mul(x: Int*) : Int = { // Applying 'product' method to // perform multiplication x.product } // Displays product println(mul(Array(7, 3, 2, 10): _*)) } }
输出:420
为了在定义的方法中传递一个数组,我们需要在传递数组中的值之后放置一个冒号,即:和_* 。
- 显示重复参数始终是所定义方法的最后一个参数的示例。
例子:// Scala program of repeated // parameters // Creating object object str { // Main method def main(args: Array[String]) { // Creating a method with // repeated parameters def show(x: String, y: Any*) = { // using 'mkString' method to // convert a collection to a // string with a separator "%s is a %s".format(x, y.mkString("_")) } // Displays string println(show("GeeksforGeeks", "Computer", "Sciecne", "Portal")) } }
输出:GeeksforGeeks is a Computer_Sciecne_Portal
在这里, format用于格式化字符串。