簡體   English   中英

這些scala代碼行是否等效?

[英]Are these lines of scala code equivalent?

給定一個對象myObject,它具有方法getSomething,該方法接受String參數並返回String

#1和#2等價嗎?

  1. val foo = myOjbect.getSomething("foo")

  2. val foo = myOjbect getSomething "foo"

並且可以接受/優先於另一個嗎? 什么時候使用1 vs 2,反之亦然?

它們嚴格等效。

關於第二個問題,Stack Overflow並不是要決定什么是可接受的還是首選的。 但是,您可以參考有關方法調用scala文檔 ,該文檔說明了這一點:

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. 尚無共識(我認為不可能達成共識)哪種形式更可取(此類問題在這里是無題的)。

是的,它們是相同的。 開發測試時,我主要使用第二版:

result mustEqual "Hello"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM