第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

什么時候可以省略括號,點,大括號,=(函數(shù))等的精確規(guī)則?

什么時候可以省略括號,點,大括號,=(函數(shù))等的精確規(guī)則?

什么時候可以省略括號,點,大括號,=(函數(shù))等的精確規(guī)則?什么時候可以省略(省略)括號,圓點,大括號,=(函數(shù))等的精確規(guī)則?例如,(service.findAllPresentations.get.first.votes.size) must be equalTo(2).service 是我的對象def findAllPresentations: Option[List[Presentation]]votes 回報 List[Vote]必須和是有規(guī)格的兩種功能為什么我不能去:(service findAllPresentations get first votes size) must be equalTo(2)?編譯器錯誤是:“類型為Option [List [com.sharca.Presentation]]的RestServicesSpecTest.this.service.findAllPresentations不帶參數(shù)”為什么它認(rèn)為我試圖傳遞一個參數(shù)?為什么我必須為每個方法調(diào)用使用點?為什么必須(service.findAllPresentations get first votes size)相等Too(2)導(dǎo)致:“沒找到:價值第一”然而,“必須等于2” (service.findAllPresentations.get.first.votes.size)必須等于2,即方法鏈?zhǔn)欠裾#?nbsp;- 對象鏈鏈鏈接。我查看了Scala的書籍和網(wǎng)站,無法找到全面的解釋。事實上,正如Rob H在Stack Overflow問題中解釋的那樣,我可以在Scala中省略哪些字符?,這是省略'。'的唯一有效用例。是用于“操作數(shù)運算符操作數(shù)”樣式操作,而不是用于方法鏈接?
查看完整描述

3 回答

?
阿波羅的戰(zhàn)車

TA貢獻(xiàn)1862條經(jīng)驗 獲得超6個贊

你似乎偶然發(fā)現(xiàn)了答案。無論如何,我會盡力說清楚。

使用前綴,中綴和后綴表示法時可省略點 - 所謂的運算符表示法。使用運算符表示法時,只有這樣,如果傳遞給方法的參數(shù)少于兩個,則可以省略括號。

現(xiàn)在,運算符表示法是方法調(diào)用的表示,這意味著它不能在沒有被調(diào)用的對象的情況下使用。

我將簡要介紹一下這些符號。

字首:

只有~,!+并且-可以在前綴符號使用。這是當(dāng)你寫你所使用的符號!flagval liability = -debt。

中綴:

這是方法出現(xiàn)在對象和它的參數(shù)之間的符號。算術(shù)運算符都適合這里。

后綴(也是后綴):

當(dāng)方法跟隨對象并且不接收任何參數(shù)時,使用該表示法。例如,您可以編寫list tail,這是后綴表示法。

只要沒有方法,就可以毫無問題地鏈接中綴符號。例如,我喜歡使用以下樣式:

(list
 filter (...)
 map (...)
 mkString ", ")

這與以下內(nèi)容相同:

list filter (...) map (...) mkString ", "

現(xiàn)在,為什么我在這里使用括號,如果filter和map只使用一個參數(shù)?這是因為我將匿名函數(shù)傳遞給他們。我不能將匿名函數(shù)定義與中綴樣式混合,因為我需要一個邊界來結(jié)束我的匿名函數(shù)。此外,匿名函數(shù)的參數(shù)定義可能被解釋為中綴方法的最后一個參數(shù)。

您可以使用具有多個參數(shù)的中綴:

string substring (start, end) map (_ toInt) mkString ("<", ", ", ">")

使用中綴表示法很難使用Curried函數(shù)。折疊功能就是一個明顯的例子:

(0 /: list) ((cnt, string) => cnt + string.size)(list foldLeft 0) ((cnt, string) => cnt + string.size)

您需要在中綴調(diào)用之外使用括號。我不確定這里的確切規(guī)則。

現(xiàn)在,我們來談?wù)刾ostfix。Postfix可能很難使用,因為除了表達(dá)式的結(jié)尾之外,它永遠(yuǎn)不會被使用。例如,您無法執(zhí)行以下操作:

 list tail map (...)

因為尾部沒有出現(xiàn)在表達(dá)式的末尾。你不能這樣做:

 list tail length

您可以使用括號來標(biāo)記表達(dá)式的結(jié)尾來使用中綴表示法:

 (list tail) map (...)
 (list tail) length

請注意,不建議使用后綴表示法,因為它可能不安全。

我希望這已經(jīng)消除了所有的疑慮。如果沒有,只需發(fā)表評論,我就會看到我可以做些什么來改進(jìn)它。


查看完整回答
反對 回復(fù) 2019-07-29
  • 3 回答
  • 0 關(guān)注
  • 1234 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號