问题标签 [implicit]
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 - 泛型特征的隐式转换
我正在实现一个数据结构,并希望用户能够使用任何类型作为键,只要他提供了一个合适的键类型来包装它。我有这种键类型的特征。这个想法是从基类型到键类型进行隐式转换,反之则(实际上)只使用基类型。特征如下所示:
呼叫站点代码可能如下所示:
计划是类型的值K
应该隐式转换Key[K]
为排序的值,或者应该分别隐式使用排序Key[K]
,所以一切都应该解决。当然,没有办法base2key
在 trait 本身中实现隐式。或者是否存在,也许使用隐式传递的类清单?考虑到这一点,我找不到任何参考资料。
是否有可能以某种方式静态断言任何类型扩展Key[T]
都将带有隐式转换T => Key[T]
?可悲的是,伴生对象不能有抽象方法。
假设这可行,整个企业是否可行,或者所述用例是否需要多个链接的隐式转换?(正如我所读到的,链接不会发生。)
附录:Node(key : K, ...)
有了上面的定义,我可以通过 using 对(下K <% Key[K]
)的序列进行排序sortWith(_.key <= _.key)
,但不能使用sortBy(_.key)
. 因此,显然,从K
to的转换是Key[K]
隐式发生的,即使我从未在任何地方声明它,但没有Ordering
onKey[K]
隐式可用。这里发生了什么?
scala - 关于类型类的问题
我需要定义一个类型类Field
,如下所示:
类型类Numeric
还提供方法zero
和one
.
我希望每个有Numeric
实例可用的类都可以在Field
需要具有实例的类的任何地方使用。例如,以下应该有效:
您能否建议如何实现这一目标?我尝试了以下但没有奏效:
c++ - 带有隐式参数、前向声明、C++ 的模板
有一个带有隐式参数的模板类声明:
列表.h
我尝试在不同的头文件中使用流动的前向声明:
分析.h
但 G++ 显示此错误:
如果我使用没有隐式参数的前向声明
编译器不接受这种结构
分析.h
并显示以下错误(即不接受隐式值):
更新的问题:
我从模板定义中删除了默认参数:
列表.h
使用类 List 的第一个文件具有参数属性的隐式值的前向声明
分析1.h
第二类使用类 List WITH 前向定义使用隐式值
分析2.h
第二类使用类 List WITHOUT 前向定义使用隐式值
分析2.h
c++ - 隐式模板参数
以下代码在 Xcode 中生成编译错误:
error: missing template arguments before 'MyFoo'
更改Foo MyFoo(123);
以Foo<int> MyFoo(123);
解决问题,但编译器不应该能够找出适当的数据类型吗?
这是编译器错误,还是我误解了隐式模板参数?
perl - 为什么 Perl 中的“导入”子例程不大写
我好奇。大多数 Perl 隐式调用的子例程必须全部大写。TIESCALAR, DESTROY 等。事实上perldoc perltoot
说
如果构造函数可以有任意名称,那么为什么不使用析构函数呢?因为虽然显式调用了构造函数,但没有显式调用析构函数。销毁通过 Perl 的垃圾收集 (GC) 系统自动发生,这是一个快速但有点懒惰的基于引用的 GC 系统。为了知道调用什么,Perl 坚持将析构函数命名为 DESTROY。Perl 关于调用析构函数的正确时间的概念目前还没有明确定义,这就是为什么你的析构函数不应该依赖于它们何时被调用的原因。
为什么 DESTROY 全部大写?Perl 有时使用纯大写的函数名作为约定,以表明该函数将由 Perl 以某种方式自动调用。其他被隐式调用的方法包括 BEGIN、END、AUTOLOAD,以及绑定对象使用的所有方法,在 perltie 中进行了描述。
那么为什么import
子程序要小写呢?有没有人对此有很好的见解?
f# - 将重载的构造函数添加到隐式 F# 类型
我使用隐式类型构造创建了以下类型:
但是现在我需要将以下重载构造函数添加到此类型(此处为 C#):
我遇到的问题是,似乎隐式类型中的任何重载构造函数都必须有一个参数列表,它是第一个构造函数的子集。显然我要添加的构造函数不符合这个要求。有没有办法使用隐式类型构造来做到这一点?我应该以哪种方式做到这一点?我对 F# 还很陌生,所以如果你能用你的变化来展示整个类型,我将不胜感激。
提前致谢,
鲍勃
PS如果您有任何其他建议可以使我的课程更加实用,请随时发表评论。
wcf - 是否有一个属性会隐式假设具有 DataContract 的类的所有成员都是数据成员?
不必为每个成员指定 [DataMember],是否有一种属性可以假设它是一个数据成员?
我有一堂课,里面有很多成员,我必须将它们序列化为 Web 服务。
c - 函数的 C 隐式声明
我在 Linux 和 gcc 4.2.3 上。
对于下面的代码部分,lp_parm_talloc_string 函数被隐式调用,然后定义:
对于这部分,出现以下错误:
如何告诉编译器允许这种情况?
scala - Scala 中的类型类有什么用?
正如我从这篇博文中了解到的 那样,Scala 中的“类型类”只是用特征和隐式适配器实现的“模式”。
正如博客所说,如果我有 traitA
和适配器,B -> A
那么我可以调用一个函数,该函数需要 typeA
的参数,并带有 type 的参数,B
而无需显式调用此适配器。
我发现它很好,但不是特别有用。您能否提供一个用例/示例,说明此功能的用途?