问题标签 [context-bound]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
99 浏览

scala - [A: C] 和 [A[_]: C] 上下文边界之间的区别

根据我的讲座,我是新手: class Test [T: Comparing]意味着它需要一个类型的隐式值Comparing[T],可以在该类的方法中使用。使用这种更高类型的符号

问题:这个表达def notation[F[_]: Sync] : F[Unit] = ??? 是指什么?

0 投票
3 回答
74 浏览

scala - 了解 Seq[AnyVal] 和 Seq[String] 的混合上下文边界

假设我有一些函数应该采用 Ints 序列或 Strings 序列。

我的尝试:

我怎样才能将它添加到也可以使用字符串?

如果我将方法签名更改为:

但这行不通。

有没有办法优雅地对类型施加我所需的约束?

0 投票
1 回答
147 浏览

scala - 在具有给定上下文绑定的嵌套列表中键入擦除

我正在阅读 Scala with Cats 一书。我试图了解 scala 类型系统的微妙之处。我想出了以下示例:

现在这不编译,出现以下错误:

找不到 Example.Serializer[Any] 类型的证据参数的隐式值

现在我明白为什么会这样了;这是由于我的功能 f1。因为我有一个 List[Int] 和 List[String] 传入函数,所以常见的父类型是 Any。因此类型信息被删除,并传递给序列化程序。

但是,鉴于我已经设置了上下文绑定,编译器不应该在这发生之前先查找隐式定义吗?显然不是这样,所以我的理解是不正确的。解决这个问题的 Scala 方法是什么。

任何解释将不胜感激!

0 投票
1 回答
44 浏览

scala - 具有优先级隐式的上下文边界的类型错误

我有以下问题,我对发生的事情感到困惑:

  1. 我有一个隐式定义的优先级
  2. 我使用此优先级隐式来强加上下文绑定
  3. 我声明了一个带有默认字段的案例类,该字段的值被上下文绑定所覆盖
  4. 我仍然收到类型错误

一个反映我正在处理的实际代码的最小工作示例。我基本上需要在我的代码的其他部分隐含优先级:

我收到类型不匹配错误:

这里发生了什么?我推断,由于我在边界内创建默认参数,因此类型应该匹配。我在这里错过了一些技巧来完成这项工作吗?

0 投票
2 回答
90 浏览

scala - 使用隐式绑定在泛型类上的上下文

我正在学习 Scala 以便将其用于项目。

我想要更深入了解的一件事是类型系统,因为它是我以前在其他项目中从未使用过的东西。

假设我已经设置了以下代码:

所以在这个例子中,有一个类型错误:

好,可以。但是如果我删除上下文绑定,这段代码就会编译。即,如果我将 '''Dog''' 的代码更改为:

现在我假设这也不会编译,因为这种类型更通用,更模棱两可,但确实如此。

这里发生了什么?我知道当我将上下文绑定时,编译器不知道它是 double 还是 int。但是为什么还要编译一个更通用的类型呢?当然,如果没有上下文绑定,我可能有一个 Dog[String] 等,这也会使编译器感到困惑。

从这个答案:“上下文绑定描述了一个隐式值,而不是视图绑定的隐式转换。它用于声明对于某些类型 A,有一个 B[A] 类型的隐式值可用”

0 投票
1 回答
43 浏览

scala - 两种定义有什么区别

这两个定义有什么区别?

def f[F[_]: Async](...) = ???

def f[F[_]](...)(implicit F: Async[F]) = ???

稍后我可以Async[F].async {}在第一种情况和F.async {}第二种情况下使用但我无法弄清楚其中的区别。谢谢。

0 投票
2 回答
104 浏览

scala - 如何定义与更高种类的类型绑定的上下文(类型构造函数)

我试过以下

但不起作用?知道有什么问题吗?

编辑

这当然有效

0 投票
1 回答
139 浏览

scala - Shapeless:在 KList 上映射自然变换

有没有办法将自然变换(例如 a Option ~> Either[String, *])映射到 KList (例如 aHList和 a UnaryTCConstraint)上?对于 KList,这似乎是很自然的事情。

具体来说,我试图做以下事情:

我知道缺少的部分是Mapper执行 s 所必需的,.map并且 Shapeless 无法从myNaturalTransformations 案例和UnaryTCConstraint. 是否有可能通过其他方式获得?或者是否有另一种方法来映射我忽略的 KList(除了将 a 传递MapperdoStuff-function)?

我能够编写自己的版本,UnaryTCConstraint其中包括

为给定的自然变换显式生成映射器。但是我很好奇是否可以通过 Shapeless 的UnaryTCConstraint.

0 投票
0 回答
48 浏览

scala - 如何同时使用`ClassTag`和类型比较运算符`<:`?

我定义了以下类,

但是,在运行时,它会报告error: No ClassTag available for T. 将类型定义为 ClassTag 并同时使用的语法是什么<:

0 投票
3 回答
139 浏览

scala - Scala中的上下文绑定

我正在学习 Scala 中的上下文绑定。

在下面的代码中,我在整数参数上调用乘法运算符。但它出错了。'a' 被视为类型参数;但实际上并不符合我的理解。有人可以帮忙吗。

谢谢!