如何优雅处理列表首元素与其余元素的差异化URL构建逻辑?
更简洁的URL参数构建实现
你的代码功能是生成符合特定格式的URL参数串,这里提供两种更简洁优雅的Kotlin实现方式:
方式一:使用joinToString生成参数串
利用Kotlin标准库的joinToString方法自动处理分隔符逻辑,无需手动判断索引:
val params = ids.indices.joinToString(separator = "&") { index -> "$separator={$separator$index}" } sb.append(params)
方式二:直接用appendJoin追加到StringBuilder(Kotlin 1.4+)
如果想省去中间变量,直接将结果追加到StringBuilder,可以用appendJoin方法,更高效:
sb.appendJoin("&", ids.indices) { index -> "$separator={$separator$index}" }
说明
- 两种方式都通过
ids.indices直接获取列表的索引范围,替代原代码的withIndex()解构,逻辑更清晰 joinToString/appendJoin会自动处理第一个元素无前缀、后续元素用&分隔的规则,完全匹配你的需求- 当
separator为assets且ids包含3个元素时,输出结果为assets={assets0}&assets={assets1}&assets={assets2},与预期一致
内容的提问来源于stack exchange,提问作者hc0re
相关产品推荐
相关产品推荐

