Q
單位爲參數
1
A
回答
6
隨着sum1
,你可以帶或不帶括號調用它:
val x = sum1 // x: Int = 3
val y = sum1() // y: Int = 3
但隨着sum2
你被迫提供括號。我認爲,如果你打電話sum2()
,你實際上是用()
與調用sum2
參數a
。
val x2 = sum2 // error
val y2 = sum2() // y2: Int = 3
2
請注意,將單位作爲參數傳遞給表達式可讓您以嚴格的語言模擬惰性評估。通過「在lambda下移動評估」,確保在()
傳入之前不會評估表達式。自動記憶數據結構,這些數據結構在第一次被檢查時從一個函數崩潰到一個值。
2
這些方法不相同。一旦收到參數,另一個不會。看到這裏:
scala> sum1(println("Hi, there!"))
<console>:9: error: too many arguments for method sum1:()Int
sum1(println("Hi, there!"))
^
scala> sum2(println("Hi, there!"))
Hi, there!
res1: Int = 3
相關問題
- 1. 函數簽名爲什麼會在其他參數之後有單位參數?
- 2. dojo.fx.slideTo百分比的單位參數
- 3. 爲什麼推斷這些參數具有單位類型?
- 4. 如何將佈局參數設置爲單位dp android
- 5. 什麼是'Size'參數大小單位,在Set參數Method?
- 6. 使用存儲過程參數DATE_SUB的單位參數
- 7. 爲什麼位圖參數無效?
- 8. 地理位置功能參數行爲
- 9. 將通用參數視爲「位」
- 10. 使用參數值作爲位置
- 11. 有位參數爲目錄名
- 12. 使用的位置參數爲可選參數
- 13. 的Python:`Dense`只能接受1位置參數( '單位',)
- 14. 單位爲角
- 15. 如何將雙參數函數轉換爲單參數函數?
- 16. 可以argparse存儲位置數參數作爲簡單的變量?
- 17. 使用位參數
- 18. 位置參數OSX
- 19. BASH - 位置參數
- 20. 的位置參數
- 21. 與位置參數
- 22. 64位參數fcntl.ioctl()
- 23. 參數佔位符
- 24. 用'參數'作爲單獨的參數調用函數
- 25. 位置參數計數4
- 26. 當編譯爲64位時,P/Inovke參數偏移32位
- 27. 在JS中傳遞參數作爲單獨的參數
- 28. 創建新表單時將參數傳遞爲參數
- 29. WebClient.OpenRead以塊爲單位下載數據
- 30. 以6年爲單位的組數據
一個很好的經驗法則是當計算涉及副作用時需要parens,但當計算是純粹的時候不需要它們。我想你可以用這種方式使用parens,就像Lisp和Ruby使用'!'一樣。 –