小编use*_*676的帖子

在scala中,特征是否可以扩展需要参数的类?

我知道一个特性可以扩展一个具有空参数构造函数的类:

class Foo
trait Bar extends Foo
Run Code Online (Sandbox Code Playgroud)

但是有可能扩展一个构造函数有一些参数的类吗?

class Foo(b: Boolean)
trait Bar extends Foo(true)
Run Code Online (Sandbox Code Playgroud)

是否有可能实现这一目标?看来这是不可能的.但为什么?

谢谢

inheritance extends scala traits

10
推荐指数
1
解决办法
187
查看次数

Java双丢失精度计算

我在Java中有以下双重计算:

double C1 = some value;    // It's always an integer
double C2 = some value;    // It's always integer, and C2 >= C1
double S = some value;     // It's always 0 < S <= 1
double carry = some value; // It's always 0 <= carry < 1

double rate = ((C1/C2)/S);
double C3 = Math.floor( (rate * S * C2) + carry );
Run Code Online (Sandbox Code Playgroud)

现在,如果我们没有失去精确度,那C3 == C1将是真的.但是,因为我们失去精度,将C3C1仍然永远是平等的吗?

如果他们不会永远是平等的,如果我有C1,C2, …

java math precision double

8
推荐指数
1
解决办法
263
查看次数

scala.collection.Seq.groupBy()函数是否保留顺序?

我想弄明白:

  1. 如果scala.collection.Seq.groupBy()保留订单.意思是如果我有List((true, 2), (true, 8)),并且通过第一个元素(布尔值)进行groupBy,我总是会得到一个true的列表,它在8之前有2个.

  2. toMap的相同问题.这意味着如果我在提到的列表上执行toMap,我是否总是最终得到8为真关键,因为8在2之后出现并覆盖它?

我在scala doc中找不到任何有关实现的内容:scala doc.我正在尝试决定是否编写自己的版本以确保订单得到保留.

谢谢!

collections scala seq

1
推荐指数
1
解决办法
971
查看次数

Scala的名称参数性能有多好?

我知道scala by-name参数是如何工作的:https://tpolecat.github.io/2014/06/26/call-by-name.html

我在一段非常敏感的代码中使用它,它可以运行很多.我的问题是:是否存在任何性能或内存缺陷?例如,我知道使用lazy val有它的缺点:Scala的懒惰val的(隐藏)成本是多少?

有关类名参数的类似内容吗?它们是如何在下面实现的?

请注意我不会在懒惰的情况下使用它进行缓存.所以我不会有上述问题.我只需要知道它不是懒惰本身.

谢谢

performance scala lazy-evaluation callbyname

0
推荐指数
1
解决办法
114
查看次数