我知道一个特性可以扩展一个具有空参数构造函数的类:
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)
是否有可能实现这一目标?看来这是不可能的.但为什么?
谢谢
我在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将是真的.但是,因为我们失去精度,将C3和C1仍然永远是平等的吗?
如果他们不会永远是平等的,如果我有C1,C2, …
我想弄明白:
如果scala.collection.Seq.groupBy()保留订单.意思是如果我有List((true, 2), (true, 8)),并且通过第一个元素(布尔值)进行groupBy,我总是会得到一个true的列表,它在8之前有2个.
toMap的相同问题.这意味着如果我在提到的列表上执行toMap,我是否总是最终得到8为真关键,因为8在2之后出现并覆盖它?
我在scala doc中找不到任何有关实现的内容:scala doc.我正在尝试决定是否编写自己的版本以确保订单得到保留.
谢谢!
我知道scala by-name参数是如何工作的:https://tpolecat.github.io/2014/06/26/call-by-name.html
我在一段非常敏感的代码中使用它,它可以运行很多.我的问题是:是否存在任何性能或内存缺陷?例如,我知道使用lazy val有它的缺点:Scala的懒惰val的(隐藏)成本是多少?
有关类名参数的类似内容吗?它们是如何在下面实现的?
请注意我不会在懒惰的情况下使用它进行缓存.所以我不会有上述问题.我只需要知道它不是懒惰本身.
谢谢
scala ×3
callbyname ×1
collections ×1
double ×1
extends ×1
inheritance ×1
java ×1
math ×1
performance ×1
precision ×1
seq ×1
traits ×1