问题标签 [value-class]

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 投票
2 回答
195 浏览

scala - Scala 值类的惯用方法

有谁知道是否有一种惯用的方式来命名 Scala 值类的内部值?假设我有一个产品 ID 的值类,是否更好地定义为:

?

这只是偏好问题还是有惯用的指导方针?

0 投票
3 回答
762 浏览

scala - 在值类上使用私有构造函数是否会否定值类的好处?

我正在考虑制作一个值类,它对如何实例化有一定的警惕性。例如,假设我想要一个非负整数:

我唯一担心的是私有构造函数可能使 scala 编译器无法将NonNegInt视为原始int。这是真的?

0 投票
1 回答
1339 浏览

scala - 具有值类参数的 Mockito 存根方法因 NullPointerException 而失败

使用类型化的值类作为 ID 是 Scala 中的一种常见模式。但是,在对将值类作为参数的方法进行存根时,Mockito 似乎存在问题。在下面的示例中,具有实际值的第一个存根可以正常工作,但是使用参数匹配器的第二个存根会抛出 NullPointerException。

我发现的唯一参考是这个问题,但那里显示的解决方案不起作用。任何人都知道解决方案或解决方法?

版本是:org.mockito:mockito-all:1.10.19org.specs2:specs2_2.11:2.4.15

[信息] Mockito 应该

[info] + 带有参数值的正确存根

[信息]!使用参数匹配器正确存根

[错误] NullPointerException:(MockitoIDStubTest.scala:20)

[错误] MockitoIDStubTest$$anonfun$1$$anonfun$apply$5$$anonfun$apply$6.apply(MockitoIDStubTest.scala:20)

0 投票
2 回答
60 浏览

scala - 为什么这个几乎相同的值类不起作用?

正如http://docs.scala-lang.org/overviews/core/value-classes.html所承诺的,这有效:

但这不会编译:

为什么不?我唯一改变的是方法的名称!

这是错误消息:


是的,我已经仔细检查了whyNot.

0 投票
1 回答
714 浏览

scala - 使用 Scala 值类定义新的数值类型

当我第一次听说价值类时,我想——终于!现在我可以在没有对象分配的情况下定义我自己的数字类型!但结果比我想象的要难。

我想定义我自己的 Decimal 类型Dec64http://dec64.com/)或 long-backed decimal 以进行快速货币计算。但是,AnyVals 不能扩展Numeric,因为Numeric它不是通用特征。我试图跟进 Scala 代码Double,但它非常复杂,有AnyValCompanion很多FractionalProxy标记private[scala]代码,还有非常有用的注释,例如不应该在用户代码中扩展。

那么,如何正确定义自己的数值类型,以便与其他 Scala 数字一起使用呢?

0 投票
1 回答
114 浏览

scala - 当需要实例化 Scala 值类时,有没有办法获得警告?

在有关Scala value classes的文档中,提到了需要为 value class 实际分配实例的三种情况:

分配摘要

值类实际上在以下情况下被实例化:

  1. 值类被视为另一种类型。
  2. 一个值类被分配给一个数组。
  3. 进行运行时类型测试,例如模式匹配。

当需要实例化值类时,编译器或语言功能中是否存在会产生警告的设置?

0 投票
4 回答
825 浏览

scala - 值类中的验证

SIP-15 意味着可以使用值类来定义例如新的数字类,例如正数。是否可以编写这样一个约束,即在没有构造函数的情况下底层> 0,而不必调用单独的方法来验证约束(即;创建此类的有效实例很简洁)?

如果值类具有构造函数的概念,那么可以有如下验证的地方,但不支持(即,下面的代码将无法编译)

0 投票
1 回答
12524 浏览

r - 为什么转置函数将R中的数字更改为字符?

我在 Excel 中构建了一个简单的矩阵,其中包含一些字符值和一些数值(在 Excel 中设置的数据截图)。我使用 openxlsx 包将其读入 R,如下所示:

之后我检查课程:

这正是我想要的。当我尝试转置矩阵时出现我的问题,然后再次检查类:

当我现在检查 sapply 时,所有值都是“字符”。为什么转置时没有保留类?

0 投票
1 回答
471 浏览

scala - Scala:值类与案例类

我试图发现在给定场景中使用值类或案例类之间的区别。假设我想将整数 mod 5 建模为唯一数据类型。问题是我应该从哪一个开始...

无论如何,我似乎可以Numeric相当容易地创建一个实现。那么,使用案例类方法,我可以简单地做到这一点:

但是,对于值类,这似乎是一项更加困难的尝试,主要是因为这样做的好处是避免了对象创建。因此,像

似乎在很大程度上违背了目的。(实际上不确定它是否有效。)

问题是可以Numeric与值类一起使用,还是我必须硬着头皮使用案例类?

0 投票
1 回答
117 浏览

scala - Scala 禁止分配值类

根据有关值类的文档,它们可以在多种情况下分配:

分配摘要

值类被视为另一种类型。

一个值类被分配给一个数组。

进行运行时类型测试,例如模式匹配。

无论如何,如果出现这些情况,是否会抛出编译错误?