将setOf作为参数传递给函数。这怎么能实现呢?

我必须写一个函数,它以三组为参数。

签名看起来像这样:

fun twoInThree(a: setOf<Int>, b: setOf<Int>, c: setOf): setOf<Int> {}

但这似乎不可能。编译器抱怨。使用 ArrayList 理论上是可行的。

我究竟做错了什么?如何完成所需的声明?

回答

setOf()是一个函数,而不是一个类型。您调用它来创建Set<T>.

为自定义twoInThree函数定义参数时,您需要的是Set<T>类型:

fun twoInThree(a: Set<Int>, b: Set<Int>, c: Set<Int>): Set<Int> {}

一些额外的注意事项:

  • 您对 的混淆ArrayList可能来自于构造函数ArrayList()(它是一个返回 的实例的函数ArrayList)实际上看起来像类型 的事实ArrayList<T>

  • 使用ArrayList作为变量和函数参数类型通常是不鼓励(即使它是完全有效)。相反,我们更喜欢保持更通用并使用List<T>界面。

  • This also demonstrates why the Kotlin coding conventions strongly prefer classes to start with a capital letter, and methods/functions to start with a lower-case letter, making them easy to distinguish.

以上是将setOf作为参数传递给函数。这怎么能实现呢?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>