Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin Koans:命名参数解决方案_Kotlin_Collections - Fatal编程技术网

Kotlin Koans:命名参数解决方案

Kotlin Koans:命名参数解决方案,kotlin,collections,Kotlin,Collections,我正在练习科特林,我正在考虑这个问题 命名参数 默认参数和命名参数有助于最小化重载的数量 并提高函数调用的可读性。图书馆 函数joinToString使用参数的默认值声明: 它可以在字符串集合上调用。只指定两个 参数使函数joinOptions()以JSON格式返回列表 格式(例如“[a、b、c]”) 答案是: fun joinOptions(options: Collection<String>) = options.joinToString(prefix = "[", postf

我正在练习科特林,我正在考虑这个问题

命名参数

默认参数和命名参数有助于最小化重载的数量 并提高函数调用的可读性。图书馆 函数joinToString使用参数的默认值声明:

它可以在字符串集合上调用。只指定两个 参数使函数joinOptions()以JSON格式返回列表 格式(例如“[a、b、c]”)

答案是:

fun joinOptions(options: Collection<String>) = options.joinToString(prefix = "[", postfix = "]")
所以我只是好奇我是否遗漏了什么他们在这个问题上的目的是什么?

println(collection)
调用
collection
对象上的
toString()
方法,一些集合将以以下格式打印其内容:

[1, 2, 3]
这确实相当于打电话

collection.joinToString(prefix = "[", delimiter = ", ", postfix = "]")
但是,您无法修改此行为,因此,例如,如果您希望在自己的行上打印集合中的每个元素,则必须编写自己的
toString()
实现。这就是
joinToString()
方便的地方,您只需执行以下操作即可

collection.joinToString(delimiter = "\n")
请注意,您不需要为
前缀
后缀
传递参数,因为默认值适合您的用例

Koans示例可能不那么容易混淆,但它可以说明命名参数和默认值的用法。

println(collection)
调用
collection
对象上的
toString()
方法,一些集合将以以下格式打印其内容:

[1, 2, 3]
这确实相当于打电话

collection.joinToString(prefix = "[", delimiter = ", ", postfix = "]")
但是,您无法修改此行为,因此,例如,如果您希望在自己的行上打印集合中的每个元素,则必须编写自己的
toString()
实现。这就是
joinToString()
方便的地方,您只需执行以下操作即可

collection.joinToString(delimiter = "\n")
请注意,您不需要为
前缀
后缀
传递参数,因为默认值适合您的用例

Koans示例可能不那么容易混淆,但它可以说明命名参数和默认值的用法。

解决方案如下:

fun joinOptions(options: Collection<String>) = options.joinToString(
    prefix = "[",
    separator = ", ",
    postfix = "]"
)
fun jointoptions(选项:集合)=options.joinToString(
前缀=“[”,
分隔符=“,”,
postfix=“]”
)
解决方案如下:

fun joinOptions(options: Collection<String>) = options.joinToString(
    prefix = "[",
    separator = ", ",
    postfix = "]"
)
fun jointoptions(选项:集合)=options.joinToString(
前缀=“[”,
分隔符=“,”,
postfix=“]”
)

当你的前缀是
[
时,它真的用一个
[
打印第二次了吗?我的错误应该是只有一个
[
。我只是通过添加另一个前缀来测试前缀是否有效……当你的前缀是
时,它真的用一个
[
打印第二次了吗[[
?我的错误应该只有一个。[。我只是通过添加另一个前缀来测试前缀是否有效。。。