相关疑难解决方法(0)

scala中ArrayBuffer和Array之间的区别是什么

我是scala/java的新手,我在解决这两个问题上遇到了麻烦.

通过阅读scala文档,我了解到ArrayBuffer是交互式的(追加,插入,前置等).

1)基本的实施差异是什么?

2)这两者之间是否存在性能差异?

谢谢.

arrays scala

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

为什么== operator和equals()对Scala中的AnyVal值的行为有所不同

在scaladoc中scala.Any,解释了运算符==(或方法==):

该表达式x == that相当于if (x eq null) that eq null else x.equals(that) http://www.scala-lang.org/api/current/#scala.Any

对于子类的对象AnyRef,我可以很容易地理解它,我没有看到任何奇怪的东西.

然而,对于值AnyVal,(我的意思是Int,Double,Long,等,)上面的定义是有点棘手(1 eq null?如果我们不转变这并不编译1到java.lang.Integer中).此外,==equals()不同的表现.

我举几个例子.

scala> 1 == 1
res0: Boolean = true

scala> 1 == 1.0
res1: Boolean = true

scala> 1 == 1.2
res2: Boolean = false

scala> 2 == BigInt(2)
res3: Boolean = true

scala> 2.0 == …

primitive scala equality equals

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

在Scala中使用'=='而不是equals进行字符串比较

为什么建议在Scala中使用==而不是.equals字符串比较?StackOverflow中有很多问题不建议在Java中使用引用等式进行字符串比较,但为什么建议在Scala中进行完全相反的操作呢?

string scala equals

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

Scala,Java和平等

val filesHere = (new java.io.File(".")).listFiles
val filesHere2 = (new java.io.File(".")).listFiles
Run Code Online (Sandbox Code Playgroud)

scala> filesHere == filesHere2
res0:Boolean = false

这非常直观.我宁愿期望filesHere和filesHere2相等.

这肯定是由于Java和Scala之间的语义不匹配,例如,关于数组或(文件)相等.显然,我在这里遗漏了一些东西!

java scala equality reference file

7
推荐指数
4
解决办法
2556
查看次数

反序列化后,DateTime不等于自身

正如您在下面看到的,在序列化和反序列化之后,您将获得据称不同的DateTime实例:

scala> import org.joda.time.DateTime
import org.joda.time.DateTime

scala> val a = new DateTime()
a: org.joda.time.DateTime = 2014-01-08T19:00:08.883+02:00

scala> val b = DateTime.parse(a.toString())
b: org.joda.time.DateTime = 2014-01-08T19:00:08.883+02:00

scala> a == b
res0: Boolean = false
Run Code Online (Sandbox Code Playgroud)

根据AbstractInstant的javadoc,equals"基于毫秒时刻,时间顺序和时区,将此对象与指定对象进行相等性比较." 所以这不应该发生吗?我错过了什么?

serialization datetime scala jodatime deserialization

7
推荐指数
2
解决办法
2865
查看次数

Scala中的比较

val a=new String("Hello")和之间有什么区别val a="Hello"

例:

val a="Hello"
val b="Hello"
a eq b
res:Boolean=True
Run Code Online (Sandbox Code Playgroud)

同理:

val a=new String("Hello")
val b=new string("Hello")
a eq b
res:Bolean=False
Run Code Online (Sandbox Code Playgroud)

scala

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

null.==(obj)不会在scala中抛出空指针异常

我是斯卡拉的新手.请帮我理解下面的代码片段

null.==("goutam") // ---> return false
null.equals("goutam") // ---> throw NullPointerException
Run Code Online (Sandbox Code Playgroud)

根据我的理解,null是Null特征的唯一实例,它扩展了Anyref和==,并且两者都是AnyRef的函数.那么为什么第一个声明不会抛出而第二个声明呢?

scala scala-collections

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

Scala Seq比较

在Scala中有一种方法可以比较两个序列,如果它包含相同的元素,它返回true,无论顺序和重复如何?

Seq("1", "2") vs Seq("2", "1")           => true
Seq("3", "1", "2") vs Seq("2", "1", "3") => true
Seq("1", "1", "2") vs Seq("2", "1")      => true
Run Code Online (Sandbox Code Playgroud)

谢谢

备注:这是不是一个重复的这个,因为它也要求以排除从单向复制,它是不是使用LIST的序列.

scala seq

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