Scala可变长度参数
2016-12-02 10:06
330 查看
Scala 允许你指明函数的最后一个参数可以是重复的。这可以允许客户向函数传入可变长度参数列表。想要标注一个重复参数,在参数的类型之后放一个星号。例如:
这样定义, echo 可以被零个至多个 String 参数调用:
函数内部,重复参数的类型是声明参数类型的数组。因此, echo 函数里被声明为类型
的 args 的类型实际上是
重复参数传入,你会得到一个编译器错误:
要实现这个做法,你需要在数组参数后添加一个冒号和一个
这个标注告诉编译器把 arr 的每个元素当作参数,而不是当作单一的参数传给 echo 。
scala> def echo(args: String*) = for (arg <- args) println(arg) echo: (String*)Unit
这样定义, echo 可以被零个至多个 String 参数调用:
scala> echo() scala> echo("one") one scala> echo("hello", "world!") hello world!
函数内部,重复参数的类型是声明参数类型的数组。因此, echo 函数里被声明为类型
“ String* ”
的 args 的类型实际上是
Array[String]。然而,如果你有一个合适类型的数组,并尝试把它当作
重复参数传入,你会得到一个编译器错误:
scala> val arr = Array("What's", "up", "doc?") arr: Array[java.lang.String] = Array(What's, up, doc?) scala> echo(arr) <console>:7: error: type mismatch; found : Array[java.lang.String] required: String echo(arr) ˆ
要实现这个做法,你需要在数组参数后添加一个冒号和一个
_*符号,像这样:
scala> echo(arr: _*) What's up doc?
这个标注告诉编译器把 arr 的每个元素当作参数,而不是当作单一的参数传给 echo 。
相关文章推荐
- scala/java 可变长度参数
- scala可变长度参数(一)
- Scala可变长度参数
- scala可变长度参数概念
- Scala可变长度参数~
- scala可变长度参数(转)
- scala可变长度参数(二)
- Scala可变长度参数和:_*使用
- scala可变长度参数(一)
- Scala可变长度参数与:_*使用
- scala可变长度参数(二)
- @weakify与@strongify的装逼写法, 用宏实现计算一个可变参数列表的长度
- Javascript可变长度参数列表 - Arguments对象
- 标C编程笔记day06 动态分配内存、函数指针、可变长度参数
- params 长度可变参数
- 深入了解JAVA可变长度的参数(Varargs)
- Java语法糖系列之可变长度参数和foreach循环
- 黑马程序员-sqlhelper 传入长度可变参数
- 深入了解JAVA可变长度的参数(Varargs)
- Python可变长度的参数