回答
每種數據類型都有自己的模塊。所以Maybe
,All
和Any
都是同時類型的構造函數和模塊。因此,您可以編寫Maybe.just
,All.just
或Any.just
來消除構造函數的歧義。或者它可以通過類型推斷(統一是一個更合適的術語)或明確的類型簽名(如Thilo)在他們的評論中說明。 (但是,如果存在一些不明確的地方,你會得到一個錯誤 - 你會得到一個未解決的問題)。
如果你想獲得技術,最好的術語可能類似於「Type-directed disambiguation」,當你處於* checking *模式時可能會出現這種情況,因爲你已經有了一個類型,並且假設你希望表達式具有該類型,它很清楚構造函數對應的數據類型。 – gallais
@gallais,你可以通過統一獲得該類型。即如果你有'let f = just in f(fromMaybe 0(f 0))'',那麼即使我們可以進入推理模式,這兩個'f'也會被消歧。但是,是的,這類事情的正確術語是類型定向名稱解析。 – user3237465
你確實是對的。 – gallais
- 1. 構造與名稱衝突
- 2. GCC函數名稱衝突
- 3. 複製構造函數衝突?
- 4. 斯卡拉類成員和構造函數的參數名稱衝突
- 5. 靜態庫函數名稱衝突
- 6. 函數(文件)名稱衝突警告
- 7. Linux函數名稱衝突MATLAB
- 8. C++中的函數名稱衝突
- 9. 名稱衝突
- 10. 名稱衝突
- 11. 名稱衝突
- 12. 如何構造函數以免發生衝突?
- 13. 構造函數(構造函數名稱)未定義
- 14. 名稱衝突,因爲同一消失
- 15. 與JS函數名稱衝突的標籤的ID名稱
- 16. F#:雙重提取值名稱與函數名稱衝突?
- 17. JQGrid:colmodel名稱衝突
- 18. Javascript名稱衝突?
- 19. SVN名稱衝突?
- 20. 「VBAProject」名稱衝突
- 21. 架構名稱與表名 - 如何避免衝突?
- 22. 構造函數對象名稱 - javascript
- 23. 函數命名衝突
- 24. javascript函數名衝突
- 25. 類函數和非類函數的名稱衝突
- 26. 如何解決名稱空間衝突?
- 27. Symfony config.yml - 如何通過名稱傳遞構造函數參數?
- 28. 如何使用Scala宏獲取構造函數參數名稱
- 29. Angular如何知道構造函數參數的名稱?
- 30. 命名空間和函數名稱衝突
類型推斷。當你調用其中一個'just'函數時,它會嘗試查看你需要什麼樣的結果(根據你使用的結果)。如果這仍然不明確,你會得到一個錯誤,並且必須在某處添加一個明確的類型聲明。希望只有一個位於戰略位置,使所有其餘部分都清楚(但明確的類型聲明如果僅用於文檔,則總是很好的樣式)。 – Thilo