问题标签 [self-type]

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 回答
471 浏览

scala - 限制可以扩展 Scala 特征的类

似乎有三种(或更多)方法可以限制哪些类可以混合给定的 scala 特征:

  1. 使用共同祖先[特质]
  2. 使用抽象声明
  3. 在特质中使用自我类型

共同祖先方法需要额外的限制,而且似乎不是最理想的。同时,自键入和抽象声明似乎是相同的。有人愿意解释差异和用例(尤其是在 2 和 3 之间)吗?

我的例子是:

0 投票
2 回答
178 浏览

scala - 在 Scala 中使用 self-type 时如何保持单一职责?

使用 self-type 进行依赖注入,导致暴露其他 trait 的 public 方法,破坏了单一职责主体。让我用例子来说话

我的Sample班级依赖于Output特质,当然我想在我的班级中使用Output特质方法。Sample但是通过上面的代码示例,我的Sample类公开output了并非来自其功能的方法并打破了Sample.

我怎样才能避免它并继续使用自我类型和蛋糕模式?

0 投票
1 回答
52 浏览

scala - 自类型`this:T =>`和`this:T`有什么区别?

Scala (2.12.8) 之间的自类型

和这个

语义上有什么区别?

换句话说,this: Any(在第二个片段中)的目的是什么?

我希望编译器在编译第二个代码片段时大喊我不应该声明this,但我收到了这个警告:

0 投票
2 回答
81 浏览

scala - 从受自我类型约束的多个特征中定义一个特征

我有两个abstract class如下所示:

如您所见,mixin 部分看起来相同。我的问题是,如何抽象 mixin 部分,当我添加更多特征时,它适用于BddAsyncSpecand BddSpec

0 投票
1 回答
51 浏览

scala - 如何在scala中动态处理自类型注释

我正在尝试将蛋糕图案用于我的项目。哪个工作正常。

这是一个伪代码。

所以问题就在这里,来自本地 DBSource 的数据被读取两次(一次在FilterWhilteSpaceForDB,第二次在MaskPasswordForDB)。我们可以创建一个LocalDBSource可以在两者中使用的实例或解决我的Source自类型注释依赖关系吗?

0 投票
1 回答
132 浏览

scala - 如何让特征在scala中使用`this`构造函数?

[编辑更新] 这是对我的问题的正确陈述。

我希望在 a 中调用构造函数trait。但似乎我必须使用apply功能。它是否存在像 new this() 这样的用法?

就像下面的代码。它抛出类型不匹配。我希望添加构造函数的约束,或者我必须使用apply函数。

0 投票
1 回答
552 浏览

rust - 为什么在具体实现中使用 Self 而不是类型的名称?

的文档Add给出了以下示例:

为什么文档的作者在Self这里使用,而不是按名称提及Point?有技术上的区别,还是纯粹为了风格点?

0 投票
2 回答
151 浏览

scala - 具有更高种类类型的类的自类型注释

鉴于:

我怎样才能使这个特征起作用:

我想确保StaticRoles只混入也扩展的类中Databases,但是我不关心类型参数的具体值F

代码返回:

这是公平的,但是它返回相同的错误:

我也试过:

这给出了错误:

0 投票
1 回答
59 浏览

java - 如何避免抽象类向下转换为子类?

我的 android 应用程序中有以下结构:

现在,在 MainActivity 中初始化 BaseViewModel 时,我想将类型输入为泛型,因此我不必每次都将其强制转换为子实现((MainActivityViewModel)mViewModel),我已经阅读了有关泛型自键入的信息,但不明白它在这个确切的场景中是如何工作的.

0 投票
0 回答
52 浏览

java - maven中的编译错误,但在eclipse中的self类型没有

我正在尝试创建一些java SELF 类型

这是什么原因

  1. 一切都在eclipse中完美编译
  2. maven 编译时出现以下错误

    Foo 和 FooLike 类型不兼容;都定义了existing(),但返回类型不相关

细节

Maven&Java 版本: 日食版本:

考试

这在eclipse中编译但不在maven中。

接口 Foo 和 Bar 是公共 API 的一部分,FooLike 是内部的。


更新

将以下实现添加到 Bar 也将允许在 maven 中进行编译