在Kotlin中的省略运算符Java等价

时间:2017-11-11 03:12:49

标签: java kotlin variadic-functions ellipsis

在Java中,可以执行以下操作:void function(Url... urls)。它可以使用1..n网址。问题是,是否有可能与Kotlin做同样的事情。

2 个答案:

答案 0 :(得分:6)

解决方案是prediction.eval(feed_dict={X_data: np.reshape(new, (-1,4))}) ,可以迭代参数。

vararg

答案 1 :(得分:3)

来自Kotlin参考文献(https://kotlinlang.org/docs/reference/functions.html):

  

可变数量的参数(Varargs)

     

函数的参数(通常是最后一个)可以标记为   vararg修饰符:

fun <T> asList(vararg ts: T): List<T> {
    val result = ArrayList<T>()
    for (t in ts) // ts is an Array
        result.add(t)
    return result
}
     

允许将可变数量的参数传递给函数:

val list = asList(1, 2, 3)
     

在函数内部,类型为T的vararg参数作为数组可见   of T,即上例中的ts变量具有Array类型。

注意与Java的区别:在Java中,您可以将数组作为单个参数传递,而在Kotlin中,您必须显式解压缩数组,以便每个 数组元素成为一个单独的参数。但是你可以通过简单地将*字符放在相应的参数之前来实现:

fun main(args: Array<String>) {
    val list = listOf("args: ", *args)
    println(list)
}

(了解它如何让您在一次调用中组合数组中的值和一些固定值,这在Java中是不允许的。)