Kotlin如何在字符串插值中展开List列表实现元素拼接输出
问题原因
展开操作符*仅支持在可变参数函数调用时传入数组参数使用,不能直接放在字符串插值的${}表达式中做展开拼接,所以会触发「Expecting an expression」语法报错。
实现方案
Kotlin标准库为Iterable类型提供了原生的joinToString()扩展方法,专门用于集合元素的字符串拼接,完全匹配你的需求:
fun getResult(lst: List<String>): String { // 默认分隔符为`, `(逗号加空格),无前缀后缀 return lst.joinToString() }
调用示例验证:getResult(listOf("a", "b", "c")) 输出结果为 "a, b, c"。
如果需要自定义拼接规则,可以传入对应参数调整:
- 修改分隔符:
lst.joinToString(separator = " | ")输出a | b | c - 增加前后包裹符:
lst.joinToString(prefix = "[", postfix = "]")输出[a, b, c] - 限制拼接元素数量:
lst.joinToString(limit = 2, truncated = "...")元素超过2个时输出a, b, ...
内容的提问来源于stack exchange,提问作者Liu
相关产品推荐
相关产品推荐

