问题标签 [traits]
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.
c++ - 如何从 C++ 模板中的方法类型推断类类型?
在如下所示的模板中,我希望调用Run(&Base::foo)
成功而不需要两次命名 Base 类型(就像在编译Run<Base>(&Base::foo)
调用中所做的那样)。我可以拥有吗?可能不添加大量Boost标头?
使用提供的代码,我收到以下错误:
(您可以在http://ideone.com/8NZkq上修改片段):
scala - Scala 特征/蛋糕模式与案例类
在我的 Web 应用程序中,授权用户至少有 4 个“方面”:http 会话相关数据、持久数据、facebook 数据、运行时业务数据。
我决定使用案例类组合而不是特征至少有两个原因:
- 特征混合可能导致名称冲突
- 我想要免费的案例类好东西,比如模式匹配和复制方法
我想知道有经验的 scalaists 对此主题的看法。看起来特征和/或蛋糕模式应该适合此类任务,但正如我上面提到的那样存在问题......很明显,我不仅想快速轻松地实现它,而且还想深入理解它以供使用在未来。
那么我的决定是否有任何缺陷和误解,或者是否正确?相关代码如下所示:
scala - 如何将特征混合到实例中?
给定一个特征MyTrait
:
它可以与extends
or混合到一个类中with
:
它也可以在实例化新实例时混合:
但是......可以将特征(或任何其他特征,如果这会产生影响)添加到现有实例中吗?
我正在使用 Java 中的 JPA 加载对象,并且我想使用特征向它们添加一些功能。有可能吗?
我希望能够混合如下特征:
python - 仅使用特征的 python 实时 gui
是否可以使用 python 的特征创建一个 ui 来为元胞自动机模拟创建接口?
c++ - 指定具有特征的模板化类
我有一个struct
表示特征的:
我可以用一个类来专门化它,因此:
FooTraits
但是,如果我希望专门研究的类也被模板化,则目前我无法使用,因此:
我应该如何表达这最后一段代码,所以任何Fruit< T >
有s_implementsFoo = true
?
目前报告以下错误:
perl - 是否可以使用 Moose/MooseX::Declare for Perl 自动强制传递给委托方法的参数(来自 Array 特征)?
我正在创建一个包含 IP 地址列表的类,作为 Net::IP 对象。
我已将 Net::IP 对象包装为子类型 (IPAddress),并定义了从字符串到 IPAddress 的强制转换。然后,我向名为 ip_list 的类添加了一个属性,类型为 ArrayRef[IPAddress],并委托给Array trait的push方法。
但是,如果我尝试像这样调用委托方法:
我收到错误“值 SCALAR(0x8017e8) 未通过容器类型约束‘IPAddress’...”
所以显然 add_ip 的参数没有被强制。
是否可以做我正在尝试的事情,或者我应该手动完成所有这些?我已经浏览了 Moose 手册,但我没有看到任何可以表明这两种方式的东西,但我可能遗漏了一些东西。
c++ - 特征类是如何工作的,它们是做什么的?
我正在阅读 Scott Meyers 的Effective C++。他在谈论特征类,我知道我需要它们在编译时确定对象的类型,但我无法理解他对这些类实际上做什么的解释?(从技术角度)
scala - 通过使用特征和 with-keyword 减少代码
我有一些具有相同超类型的类。因此,所有这些类都必须覆盖相同的方法。现在我可以调用一个方法并将它提交为一个普通超类型的对象。但是对每个提交的类型做出反应并不总是有用的,因此会引发异常。首先,我尝试像这样解决这种行为:
由于有很多子类型,这将导致大量代码(在每个方法和每个类中),我试图用traits
. 每个特征应该只测试一种类型,然后将对象转发到堆栈上更高的方法。下面的代码描述了我的想象。但这不起作用,因为编译器无法分解类型。另一个问题是我必须在每个行为类中声明类的每个属性。
有人可以告诉我是否可以通过使用特征来减少代码行?还是我目前使用的最好的全匹配解决方案?
编辑:
在您的帮助下,我找到了一个半有效的解决方案。我的主要问题是我试图通过使用 Scala 功能来减少代码行数。所以我忽略了最简单的方法:外包代码!我只需要创建一个检查对象组合的新对象。对象本身只处理它们自己的类型。
这是代码:
我稍微扩展了代码并插入了对象NumHolder
。现在,只有一个小缺陷:在 NumHolder 中,如果在 add-method 中出现编译错误,我无法提交超类型。我尝试使用泛型而不是类型关键字,但这并不方便,因为我总是将类型设置为 Num (也在对象操作中)。
我该如何解决这个小的编译错误?
c++ - clone_ptr 问题,我需要使用库的函数而不是 new 创建一个复制对象
我对 C++ 中的模板有点陌生,所以如果这个问题令人困惑或愚蠢,请原谅我,我只是有一个问题,我想实现一个克隆智能指针,所以我不必为每个类创建复制构造函数使用我的底层 XML 库,它似乎只使用对象指针而不是智能指针。问题是我的特征需要使用底层库中的函数创建新对象,我不知道如何在模板/特征类中执行此操作。我已经在下面发布了所有代码以及一些评论,如果有人可以提供建议,我将不胜感激。
如果有不清楚的地方,请询问,我会尽力澄清。
perl - 使用 Moose,如何在运行时设置“ro”属性特征的值?
我有一个属性特征,我想在其他类属性的基础上进行设置。我真的想要一个属性特征的默认值,它获取类的副本,$self
而不是属性的元数据。我想在我的课堂上做这样的事情:
但是,我想保持我的属性特质RO?这可能吗。我知道 MOP 允许设置类属性的值,但我不知道如何在元属性上设置属性。