问题标签 [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 - 使用更高种类的类型访问上下文边界的类型构造函数参数
是否可以在上下文绑定中访问更高种类的类型构造函数参数?我希望定义一个采用更高类型的特征,并具有一个返回构造函数参数实例的方法。
这失败了,编译器错误抱怨上下文边界不能有两个类型参数,但我找不到另一种访问类型构造函数参数的方法?
c#-4.0 - 解决多重继承(对于预煮类)
我需要的是:一个有两个父母的班级,他们是ContextBoundObject
另一个班级。
为什么:我需要访问ContextBoundOject
来记录方法调用。
作曲有效吗?截至目前,否(除其他外,无法识别类型)。
还有其他方法可以做到这一点吗?是的,但不是那么自动化并且没有第三方组件(也许 T4 可以做到,但我不是专家)。
更详细的解释。
我需要扩展 System 类(其中一些已经MarshalByRefObject
(它是 的父级ContextBoundObject
)作为父级,例如ServiceBase
and FileSystemWatcher
,而有些没有,例如Exception
and Timer
)来访问框架的一些内部工作,所以我可以记录方法调用(现在;将来可能会改变)。
如果我使用这种方式,我只需向要记录的对象添加一个类名,而不是向每个方法添加记录调用,但显然我不能这样做:
所以可以尝试通常的解决方案,接口,但是如果我调用 Run 如下:
使用假设的接口 IServiceBase 它不起作用,因为类型 ServiceBase 不能转换为 IServiceBase - 它不继承任何接口。除了例外,问题更严重:throw
只接受从Exception
.
反过来,产生一个 IContextBoundObject 接口,似乎也不起作用:日志记录机制不能通过方法工作,所以我不需要实现任何,只需要一个属性和一些小的内部类(并且继承自ContextBoundObject
,而不是甚至从MarshalByRefObject
,元数据实际上是相同的)。
从我所看到的,扩展 fromContextBoundObject
将扩展类放在一个Proxy
(可能是因为在这种方式中方法调用使用 SyncProcessMessage(IMessage) 并且因此可以被拦截和记录),也许有一种方法可以在没有继承的情况下做到这一点,或者可能有是可用于带有日志调用的周围方法(如 T4 文本模板)的预编译技术或后编译技术,我不知道。
如果有人想看看这个,我在我的程序中使用了自定义版本的 MSTestExtentions 来记录(方法调用的)。任何想法表示赞赏。可能需要更多解释,请问。
scala - 由于递归隐式(上下文绑定问题?),spray-json 中的 NPE
也许我在 spray-json 中发现了一个错误。当我尝试获取具有自身类型字段的对象的 json 时,我得到空指针异常。示例是:
调用堆栈就是这个
Sooo 我试图自己修复它,但我对 Scala 的了解还不够强。NPE在尝试转换 inner 时发生在这里TestItem
。此时的函数参数write
为null
。
您能否向我解释一下为什么它不使用我的隐式代替?我在调试器中看到,而不是使用我的隐含write
包含一些魔法字段的值,这些魔法字段会随着调用 chain 的深入evidence$x$y
而改变。我不知道那是什么。我觉得这与上下文相关,但阅读相关章节并没有帮助。
scala - Scala 上下文绑定意外不起作用
我试图定义一个函数来检查通用 Seq 是否已排序。
我想出了这个:
此时,编译器会返回“没有为 A 定义隐式排序”。
我可以通过按如下方式分配 a 和 b 来解决此问题:
此时编译器会愉快地接受该函数。
我觉得好奇的是,以下实现是开箱即用的:
据我所知,唯一显着的区别是我不使用偏函数。
谁能解释这种行为?
scala - 如何从 TypeTag 中获取 ClassTag,或同时获取两者?
我有一些这样的代码:
最后一行失败:
没有可用于 T 的 ClassTag
我认为TypeTag
是比一个更多的信息ClassTag
?我可以ClassTag
从TypeTag
? 如果没有,是否有一些语法可以说T
具有两个上下文边界——既TypeTag
和ClassTag
?或者,您将如何修复此代码?
scala - Scala“上下文绑定”比普通参数有什么优势?
我正在阅读应该像类型类一样工作的上下文边界和隐式参数。我看到的例子经常使用Ordering[T]
. 就像是:
这是糖
所以在体内你可以做类似的事情
我以为我以前明白这一点,现在我画了一个空白……与简单地将事物传递给函数相比有什么好处。例如:
scala - 对 Scala 类型参数施加多个泛型类型约束
我想使用 Scala 的上下文绑定模式做以下事情:
这是一个多项式类,它要求系数是 a 中的元素Ring T
。当将此多项式应用于元素(求值)时,参数的类型x
必须是环,并且类型的元素T
可以隐式转换为 type X
。例如T = Double, X = SquareMatrix
。
如何在 Scala 中对泛型类型参数施加多个类型约束?
scala - Scala中是否可以有两个或多个上下文绑定类
我如何指定我需要一个 ClassTag 和一个 T 的排序?
例子
def sort[T: ClassTag <and> Ordering](future: Future[Seq[T]]): Future[Seq[T]]
scala - Scala:在第二个构造函数中显式指定上下文绑定
为什么允许这样做:
虽然这不是:
编译器消息:
Foo[O] 不带参数
有没有办法在构造函数中显式地提供上下文绑定?
scala - 自引用视图/上下文绑定
我实际上并不清楚以下是视图还是上下文绑定。也不清楚自引用方面(重新引用模型)在做什么;):
将不胜感激对“<:Model [M]”含义的解释。