小编Ner*_*vic的帖子

哪些Scala功能是使用反射在内部实现的?

众所周知,结构类型是通过反射实现的.是否有任何其他语言结构使用反射?

reflection scala

18
推荐指数
4
解决办法
927
查看次数

Scaladoc [用例]

为什么Scaladoc中的一些方法描述开始于[use case]

例: scala.collection.immutable.StringOps.++

它只是一个将来被替换的占位符吗?

scala documentation-generation scaladoc

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

Scala中的抽象类真的比性能更好吗?

楼梯书的摘录:

如果效率非常重要,那就倾向于使用一门课程.大多数Java运行时使类成员的虚方法调用比接口方法调用更快.Traits被编译到接口,因此可能会产生轻微的性能开销.但是,只有当您知道所讨论的特征构成性能瓶颈并且有证据表明使用类实际上解决了问题时,才应该做出此选择.

我写了一些简单的代码来看看幕后真的发生了什么.我确实注意到invokevirtual在抽象类和invokeinterface接口的情况下使用.但无论我写的是什么样的代码,他们总是粗略地执行相同的操作.我在服务器模式下使用HotSpot 1.6.0_18.

是JIT在优化方面做得如此出色吗?有没有人有一个示例代码证明书中有关invokevirutal更快操作的声明?

performance jvm scala

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

Java框架与Scala不兼容的示例

有没有人遇到Java/Java EE框架,如果与Scala一起使用会导致问题?

java frameworks scala

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

如何从Scala代码中动态填充java.util.HashMap?

我是从ScalaTest测试java代码的单元,并希望在声明它的同一语句中填充java.util.HashMap.可以在Scala中执行此操作吗?

java scala hashmap scalatest

12
推荐指数
2
解决办法
1万
查看次数

Scala工具和库愿望清单

您希望Scala生态系统中存在哪些工具或库?您希望的现有产品是否有很大改进?

scala

9
推荐指数
3
解决办法
490
查看次数

如何在反编译的Scala代码中识别装箱/拆箱?

在对这个问题的公认最佳回答中,有一个明确的解释为什么拳击发生.

但是,如果我反编译代码(使用java反编译器),我看不到使用scala.runtime.BoxesRunTime.此外,如果我分析代码(使用JProfiler),我看不到BoxesRunTime的任何实例.

那么,我怎么能真正看到拳击/拆箱的证据呢?

boxing unboxing scala

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

Scala相当于Google Collections Lists.partition

我正在寻找一个将列表划分为固定大小的子列表的功能,这正是Google Collections库中的Lists.partition所做的.我在Scala Collections API中找不到这样的方法.我错过了什么吗?

scala guava

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

为什么在Scala中快速创建对象?

这个比较序列库在JVM上,它看起来是更快地创建斯卡拉对象比在Java中.不过,差异在几纳秒之内.

有没有什么真正的理由可以在Scala中创建一个对象花费更少的时间,或者图表只是反映了不正确的基准测试或其他一些不精确的情况?

scala

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

为什么部分应用函数推迟Scala中的类实例化?

想象一下这段代码:

class Foo {
  println("in Foo")

  def foo(a: Int) = a + 1
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我们调用:

new Foo().foo _
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,将创建类Foo的实例:

in Foo
res0: (Int) => Int = <function1>
Run Code Online (Sandbox Code Playgroud)

但是,如果我们调用它:

new Foo().foo(_)
Run Code Online (Sandbox Code Playgroud)

Foo的构造函数不会被调用:

res1: (Int) => Int = <function1>
Run Code Online (Sandbox Code Playgroud)

如果我们说:

res1(7)
Run Code Online (Sandbox Code Playgroud)

那是Foo实例化的时候:

in Foo
res2: Int = 8
Run Code Online (Sandbox Code Playgroud)

为什么Eta扩展与部分函数应用程序在类实例化方面有所不同?

scala

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

Scala集合不一致

为什么Scala Collections API中的集合和列表之间缺乏一致性?

例如,存在不可变的Set,但也是可变的Set.如果我想使用后者,我可以简单地这样做:

val set = Set[A]()
set += new A
Run Code Online (Sandbox Code Playgroud)

但是,本身没有可变列表.如果我想使用Lists编写类似的代码片段,使用哪种数据结构?LinkedList听起来很好,因为它是可变的,但没有定义+ =方法.ListBuffer似乎满足要求,但它不是一个列表.

阅读2.8 Collections文档后,我得出结论MutableList可能是最合适的.

我仍然希望有scala.collection.mutable.List.

scala scala-collections

5
推荐指数
2
解决办法
611
查看次数

Scala将功能与面向对象融为一体

如果你试图向某人解释Scala融合了功能和面向对象技术,你会使用哪个例子?

scala

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

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