给出一个对象myObject,它具有方法getSomething,该方法接受String参数并返回String
#1和#2是否相等?
val foo = myOjbect.getSomething("foo")
val foo = myOjbect getSomething "foo"
并且可以接受/优先于另一个吗?什么时候使用1 vs 2,反之亦然?
答案 0 :(得分:6)
它们严格等效。
关于第二个问题,堆栈溢出并不是要决定什么是可接受的还是首选的。然而,您可以参考scala documentation on method invocation来声明:
Scala具有特殊的无标点语法,用于调用带有一个参数的方法。许多Scala程序员将这种符号用于符号命名的方法:
// recommended a + b // legal, but less readable a+b // legal, but definitely strange a.+(b)
但对于几乎所有字母命名的方法都应避免使用它:
// recommended names.mkString(",") // also sometimes seen; controversial names mkString ","
答案 1 :(得分:2)
答案 2 :(得分:2)
是的,它们是相同的。 在开发类似以下的测试时,我主要使用第二版:
result mustEqual "Hello"