gpt4 book ai didi

Scala:类型参数中的问号

转载 作者:行者123 更新时间:2023-12-02 20:50:45 25 4
gpt4 key购买 nike

我正在尝试理解以下代码(来自 Scalaz 库):

def kleisliIdApplicative[R]: Applicative[Kleisli[Id, R, ?]] = ...

我假设 T[P0, ?] 形式的类型是一个带有参数的类型构造函数。但是我无法找到解释类型参数中问号用法的文档。

一个相关的问题是问号和下划线有什么区别?

是否有一个地方可以详细记录所有这些内容?

最佳答案

问号语法来自一个名为 kind-projector 的编译器插件.

您可以在此处看到它包含在 scalaz 构建中:https://github.com/scalaz/scalaz/blob/series/7.3.x/project/build.scala#L310

插件翻译

Kleisli[Id, R, ?]

(大致)

({type L[A] = Kleisli[Id, R, A]})#L

这是表达 lambda 类型(即部分应用的类型构造函数)的相当复杂的方式(但不幸的是 Scala 中的唯一方式)。

关于Scala:类型参数中的问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38619516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com