You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scala使用List.make报错value make is not a member of object List 求替代方案

List.make是Scala 2.8版本前的旧API,后续版本已从标准库移除,官方替代方案为List.fill方法。

修复后的完整代码

// P15 (**) Duplicate the elements of a list a given number of times.
//     Example:
//     scala> duplicateN(3, List('a, 'b, 'c, 'c, 'd))
//     res0: List[Symbol] = List('a, 'a, 'a, 'b', 'b', 'b', 'c', 'c', 'c', 'c', 'c', 'c', 'd', 'd', 'd')

object P15 {
  def duplicateN[A](n: Int, ls: List[A]): List[A] =
    ls flatMap { List.fill(n)(_) }
}

List.fill(n)(elem) 接收两个参数,第一个为生成元素的个数,第二个为要重复的元素,功能与原List.make完全一致。

无依赖原生实现(可选)

如果不想依赖fill方法,也可以用区间遍历实现相同逻辑:

def duplicateN[A](n: Int, ls: List[A]): List[A] =
  ls flatMap { elem => (1 to n).map(_ => elem).toList }

内容的提问来源于stack exchange,提问作者Fernando Gonzalez Sanchez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 00:06:04