==
和.equals()
Scala有什么区别,什么时候使用哪个?
实现是否与Java相同?
编辑:相关问题谈论的具体情况AnyVal
.更一般的情况是Any
.
我正在创建一个使用Git的Java应用程序.我发现有一些叫做JavaGit,EGit和JGit的东西 .
我知道JavaGit和EGit/JGit是不同的.我不明白的是EGit和JGit之间的区别.两者都托管在Eclipse项目上,但其中一个似乎与Eclipse相关,而另一个则不相关.
我不使用Eclipse而且我不打算这样做,所以我真的不太关心"Eclipse集成".
JGit是否以某种方式连接到Eclipse?(它托管在www.eclipse.org上,JGit 的文档里面也有很多"eclipse"关键字)
在这三个中,我需要连接我的Java程序(不是用Eclipse编写)来使用Git存储库?
我更喜欢一个独立的Git库(即,不依赖于本地Git安装)
编辑:还有一个问题:
编辑:我找到了答案 - 它确实(尚未尝试过).它transport
在一个叫做的类中BundleWriter
我想不可能从Java调用Scala特征中实现的方法,或者有办法吗?
假设我在Scala中:
trait Trait {
def bar = {}
}
Run Code Online (Sandbox Code Playgroud)
如果我使用它,在Java中
class Foo implements Trait {
}
Run Code Online (Sandbox Code Playgroud)
Java抱怨说 Trait is not abstract and does not override abstract method bar() in Trait
假设我有两个数组:
val ar1 = Array[String]("1", "2", "3")
val ar2 = Array[String]("1", "2", "3", "4")
Run Code Online (Sandbox Code Playgroud)
现在对于每个元素ar1
,我想首先将该元素与相应的元素连接起来,ar2
然后打印结果.一种方法是:
List.range(0, ar1.size).foreach(i => println(ar1(i)+ar2(i)))
Run Code Online (Sandbox Code Playgroud)
如果有一个foreach
变体允许我直接使用索引ar1
而不是首先构造整数列表,那会更好.
也许有更好的方法?
在scala中,我们无法扩展object
:
object X
object Y extends X
Run Code Online (Sandbox Code Playgroud)
给出错误 error: not found: type X
在我的情况下,有人在对象中定义了一些功能,我需要扩展它(基本上添加另一个方法).扩展此对象的最简单方法是什么?
请考虑以下Scala代码:
package scala_java
object MyScala {
def setFunc(func: Int => String) {
func(10)
}
}
Run Code Online (Sandbox Code Playgroud)
现在在Java中,我希望MyScala
用作:
package scala_java;
public class MyJava {
public static void main(String [] args) {
MyScala.setFunc(myFunc); // This line gives an error
}
public static String myFunc(int someInt) {
return String.valueOf(someInt);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,上述方法不起作用(正如预期的那样,因为Java不允许函数式编程).在Java中传递函数最简单的解决方法是什么?我想要一个通用的解决方案,适用于具有任意数量参数的函数.
编辑:Java 8的语法是否比下面讨论的经典解决方案更好?
我试过谷歌搜索,找不到一个像样的forall
例子.它有什么作用?为什么需要布尔函数?
请指出我的参考(Scaladoc除外).
我有以下Scala代码.
import scala.actors.Actor
object Alice extends Actor {
this.start
def act{
loop{
react {
case "Hello" => sender ! "Hi"
case i:Int => sender ! 0
}
}
}
}
object Test {
def test = {
(Alice !? (100, "Hello")) match {
case i:Some[Int] => println ("Int received "+i)
case s:Some[String] => println ("String received "+s)
case _ =>
}
(Alice !? (100, 1)) match {
case i:Some[Int] => println ("Int received "+i)
case s:Some[String] => println ("String received …
Run Code Online (Sandbox Code Playgroud) 可能重复:
Scala中的函数与方法Scala中
def foo = {}和def foo()= {}之间的区别是什么?
在scala我们可以定义
def foo():Unit = println ("hello")
Run Code Online (Sandbox Code Playgroud)
要么
def foo:Unit = println ("hello")
Run Code Online (Sandbox Code Playgroud)
我知道它们不一样但有什么区别,哪些应该在什么时候使用?
如果之前已经回答过,请指出我的链接.