问题标签 [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.
scala - [A: C] 和 [A[_]: C] 上下文边界之间的区别
根据我的讲座,我是新手:
class Test [T: Comparing]
意味着它需要一个类型的隐式值Comparing[T]
,可以在该类的方法中使用。使用这种更高类型的符号
问题:这个表达def notation[F[_]: Sync] : F[Unit] = ???
是指什么?
scala - 了解 Seq[AnyVal] 和 Seq[String] 的混合上下文边界
假设我有一些函数应该采用 Ints 序列或 Strings 序列。
我的尝试:
我怎样才能将它添加到也可以使用字符串?
如果我将方法签名更改为:
但这行不通。
有没有办法优雅地对类型施加我所需的约束?
scala - 在具有给定上下文绑定的嵌套列表中键入擦除
我正在阅读 Scala with Cats 一书。我试图了解 scala 类型系统的微妙之处。我想出了以下示例:
现在这不编译,出现以下错误:
找不到 Example.Serializer[Any] 类型的证据参数的隐式值
现在我明白为什么会这样了;这是由于我的功能 f1。因为我有一个 List[Int] 和 List[String] 传入函数,所以常见的父类型是 Any。因此类型信息被删除,并传递给序列化程序。
但是,鉴于我已经设置了上下文绑定,编译器不应该在这发生之前先查找隐式定义吗?显然不是这样,所以我的理解是不正确的。解决这个问题的 Scala 方法是什么。
任何解释将不胜感激!
scala - 具有优先级隐式的上下文边界的类型错误
我有以下问题,我对发生的事情感到困惑:
- 我有一个隐式定义的优先级
- 我使用此优先级隐式来强加上下文绑定
- 我声明了一个带有默认字段的案例类,该字段的值被上下文绑定所覆盖
- 我仍然收到类型错误
一个反映我正在处理的实际代码的最小工作示例。我基本上需要在我的代码的其他部分隐含优先级:
我收到类型不匹配错误:
这里发生了什么?我推断,由于我在边界内创建默认参数,因此类型应该匹配。我在这里错过了一些技巧来完成这项工作吗?
scala - 使用隐式绑定在泛型类上的上下文
我正在学习 Scala 以便将其用于项目。
我想要更深入了解的一件事是类型系统,因为它是我以前在其他项目中从未使用过的东西。
假设我已经设置了以下代码:
所以在这个例子中,有一个类型错误:
好,可以。但是如果我删除上下文绑定,这段代码就会编译。即,如果我将 '''Dog''' 的代码更改为:
现在我假设这也不会编译,因为这种类型更通用,更模棱两可,但确实如此。
这里发生了什么?我知道当我将上下文绑定时,编译器不知道它是 double 还是 int。但是为什么还要编译一个更通用的类型呢?当然,如果没有上下文绑定,我可能有一个 Dog[String] 等,这也会使编译器感到困惑。
从这个答案:“上下文绑定描述了一个隐式值,而不是视图绑定的隐式转换。它用于声明对于某些类型 A,有一个 B[A] 类型的隐式值可用”
scala - 两种定义有什么区别
这两个定义有什么区别?
def f[F[_]: Async](...) = ???
def f[F[_]](...)(implicit F: Async[F]) = ???
稍后我可以Async[F].async {}
在第一种情况和F.async {}
第二种情况下使用但我无法弄清楚其中的区别。谢谢。
scala - 如何定义与更高种类的类型绑定的上下文(类型构造函数)
我试过以下
但不起作用?知道有什么问题吗?
编辑
这当然有效
scala - Shapeless:在 KList 上映射自然变换
有没有办法将自然变换(例如 a Option ~> Either[String, *]
)映射到 KList (例如 aHList
和 a UnaryTCConstraint
)上?对于 KList,这似乎是很自然的事情。
具体来说,我试图做以下事情:
我知道缺少的部分是Mapper
执行 s 所必需的,.map
并且 Shapeless 无法从myNaturalTransformation
s 案例和UnaryTCConstraint
. 是否有可能通过其他方式获得?或者是否有另一种方法来映射我忽略的 KList(除了将 a 传递Mapper
给doStuff
-function)?
我能够编写自己的版本,UnaryTCConstraint
其中包括
为给定的自然变换显式生成映射器。但是我很好奇是否可以通过 Shapeless 的UnaryTCConstraint
.
scala - 如何同时使用`ClassTag`和类型比较运算符`<:`?
我定义了以下类,
但是,在运行时,它会报告error: No ClassTag available for T
. 将类型定义为 ClassTag 并同时使用的语法是什么<:
?
scala - Scala中的上下文绑定
我正在学习 Scala 中的上下文绑定。
在下面的代码中,我在整数参数上调用乘法运算符。但它出错了。'a' 被视为类型参数;但实际上并不符合我的理解。有人可以帮忙吗。
谢谢!