从数组到列表的隐式转换

2023-11-23

如何编写隐式转换Array[_] to List[_]类型?我尝试了以下方法,但似乎不起作用。

scala> implicit def arrayToList[A : ClassManifest](a: Array[A]): List[A] = a.toList
<console>:5: error: type mismatch;
 found   : Array[A]
 required: ?{val toList: ?}
Note that implicit conversions are not applicable because they are ambiguous:
 both method arrayToList in object $iw of type [A](a: Array[A])(implicit evidence$1: ClassManifest[A])List[A]
 and method genericArrayOps in object Predef of type [T](xs: Array[T])scala.collection.mutable.ArrayOps[T]
 are possible conversion functions from Array[A] to ?{val toList: ?}
       implicit def arrayToList[A : ClassManifest](a: Array[A]): List[A] = a.toList
                                                                           ^

implicit def arrayToList[A](a: Array[A]) = a.toList

似乎按预期工作。我的猜测是已经有一个genericArrayOps in Predef具有隐式转换的签名Array[T] -> ArrayOps[T], ArrayOps[T]有一个方法.toList(): List[T]。你的方法有签名Array[T] -> List[T],这也使得该方法.toList[T]可用的。主体要求使用该签名进行隐式转换。编译器不知道使用arrayToList将使该方法进入无限循环,因此出现歧义错误。然而,类型推断返回类型似乎能够解决这个问题。隐式解析似乎与类型推断不太相符。

另外值得注意的是,由于已经有一个隐式转换可以默认为您提供所需的内容,因此无需从Array to List.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从数组到列表的隐式转换 的相关文章

随机推荐

  • 我不明白如何使用 SendMessage 或 PostMessage 调用

    我需要在第三方应用程序中模拟按键 假设我有一个 C 应用程序 需要将 8 发送到计算器应用程序 我无法使用 Net 的 SendKeys 或 win32 api 的 keybd event 因为它们都要求窗口成为顶部活动窗口 但在我的情况下
  • 在 https iframe 内注册服务工作人员时出现 DOMException

    我正在尝试在 http 不安全 站点内的 https iframe 中注册服务工作者 直到最近 我的代码运行没有任何问题 从上次 chrome 更新 44 开始 此代码在 iframe 内失败 navigator serviceWorker
  • 映射区域的权限错误[重复]

    这个问题在这里已经有答案了 尝试运行以下函数时出现错误 char reverseInPlace char src no need to alloc or free memory int i 0 int size mystrlen src f
  • 如何在 Type 上使用 switch-case? [复制]

    这个问题在这里已经有答案了 可能的重复 还有比 打开类型 更好的选择吗 我需要遍历类的所有属性 并检查其类型是否为 int 我需要执行某些操作 如果其为 string 则执行某些操作 我需要它使用 switch case 这里我按以下方式使
  • 列出nodejs中的分区

    我想使用nodejs 获取Windows 中的分区列表 fs readdir 对于任何低于或包括 C 的文件夹都可以正常工作 但我不知道要给它什么才能拥有 C D 等分区列表 有人知道我应该用什么吗 Node js 中没有用于列出分区的 a
  • 如何在 .NET 中的大文件中间插入或删除字节

    是否有可能有效率的从大文件的中间插入或删除字节 如果是这样怎么办 或者我是否在插入或删除数据后重写整个文件 A lot of Bytes Unwanted Bytes A lot of Bytes gt A lot of Bytes A l
  • ul 列表不会在按键时滚动,但可以使用鼠标滚轮滚动

    我正在使用 Bootstrap 3 并且有一个 autossugest 输入 问题是我想要 ul 使用键盘按键滚动但不起作用 我认为使用箭头键滚动是默认行为 但 ul 不这样做 这是正在发生的事情 如果我按向下键两次 我正在使用预先输入由巴
  • 使用 json 将图像上传到 djangorestframework 的 imagefield 并使用 CURL 进行测试

    我在djangorest框架中制作了几个api 我可以使用 api 的 html 形式进行测试 就像在命令行中使用curl 一样 现在我有一个模型的 api 其中一个字段是 ImageField 我不知道该使用哪个curl 命令 使用我在
  • 编译为 1.5 编写的 Java 代码以与 1.4 JRE 一起使用?

    我有一个使用泛型和一些 Java 1 5 6 的项目 是否可以编译此代码以在运行 1 4 JRE 的系统上运行 我使用 ANT 构建脚本和 javac 任务来编译该库 当目标属性为 1 5 时 此构建效果良好 如果我将目标更改为 1 4 则
  • 如何在不执行 Spark SQL 表达式的情况下验证它?

    我想验证 Spark sql 查询在语法上是否正确 而无需在集群上实际运行查询 实际用例是我正在尝试开发一个用户界面 它接受用户输入 Spark sql 查询 并且我应该能够验证提供的查询在语法上是否正确 另外 如果在解析查询之后 我可以就
  • 使用默认内容块生成 content_for

    我们的 Rails 项目大量使用content for 然而 如果没有使用定义任何内容 我们经常需要渲染默认内容content for 为了可读性和可维护性 将此默认内容放在一个块中是有意义的 我们在 Rails 2 3 中创建了一个辅助方
  • JavaScript 使用逻辑运算符切换?

    for var count 1 count lt 6 count switch count case 2 document write hi break case count gt 3 document write bye break ca
  • 如何在正在编写的另一个 jQuery 插件中包含外部插件

    我正在为我正在进行的项目构建一个自定义 jQuery 插件 我想返回一个自定义到另一个 jQuery 插件的对象 而不是必须确保使用我的插件的每个页面也有这个其他插件 是否可以将其包含在实际的插件本身中 而不是在使用我的插件的每个页面上键入
  • 自动检测移动浏览器(通过用户代理?)[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 如何检测用户是否正在通过移动网络浏览器查看我的网站 以便我可以自动检测并显示我的网站的适当版本 上面有开源脚本检测移动浏览器在 Apache ASP ColdFusion Jav
  • Python:排除模块 Pyinstaller

    我开始使用 Pyinstaller 而不是 Py2Exe 然而我很快就遇到了问题 如何排除不需要的模块 以及如何查看包含在单个可执行文件中的模块 我可以删除一些pyd and dll我的 Python 安装中的 DLL 文件夹中的文件 因此
  • 使用 Fluent 验证的 Model T 通用验证器?

    我昨天刚刚了解 Fluent Validation 我认为它非常酷 我已经尝试过并且有效 但我的应用程序目前有多个模型 我必须承认为每个模型编写验证器的压力很大 是否有可能用泛型编写它并找到一种方法来验证每个模型 这就是我的验证器目前的编写
  • 向量的数据如何对齐?

    如果我想处理数据std vector对于 SSE 我需要 16 字节对齐 我怎样才能做到这一点 我需要编写自己的分配器吗 或者默认分配器是否已与 16 字节边界对齐 C 标准需要分配函数 malloc and operator new 为任
  • vbscript 中的 CommonAppData

    客户的应用程序 AppName 的配置文件存储在 CommonAppData 中 在 Windows XP 下是C Documents and Settings All Users Application Data AppName 在 Wi
  • Spring Boot 执行器健康指示器

    我们现在已经在几个项目中使用Spring Boot 我们使用的是最新版本1 2 3 我们正在合并执行器 到目前为止 一切运行良好 除了我们发现 health 指示器 默认 显示服务已关闭 这不是真的 这些服务是通过数据源实现的 它可能会调用
  • 从数组到列表的隐式转换

    如何编写隐式转换Array to List 类型 我尝试了以下方法 但似乎不起作用 scala gt implicit def arrayToList A ClassManifest a Array A List A a toList