有人可以請解釋(例如)與上下文無關和依賴於上下文的重載之間的區別嗎?以不同的編程語言重載
3
A
回答
6
我從來沒有聽說過這些。 Google上只有大約五個點擊,其中一個就是這個問題,這似乎暗示這些是構成術語。就像任何虛構的術語一樣,如果你想知道它是什麼意思,你必須詢問完成它的人。
從我能收集的很少,它似乎與基於返回類型的重載有關。
基本上,如果你有四個重載函數像這樣:
foo :: string → int
foo :: string → string
foo :: string →()
foo :: int → int
而你打電話給他們這樣的:
1 + foo 1
1 + foo "one"
foo "one"
然後,與上下文相關的超載(即超載根據返回類型以及參數類型),將選擇以下實現:
1 + foo 1 # foo :: int → int
1 + foo "one" # foo :: string → int (because `+` takes an `int`)
foo "one" # foo :: string →() (because there is no return value)
而與上下文無關的重載(即忽略返回類型),下面的實施方式將被選擇:
1 + foo 1 # foo :: int → int
1 + foo "one" # ERROR
foo "one" # ERROR
在ERROR
案件兩者有foo :: string → int
,foo :: string → string
和foo :: string →()
之間的模糊性,因爲它們只在它們的返回類型不同,但具有相同的paremeter類型。
0
從here引用:
有兩種 功能/操作符的過載。
的類型
- 背景獨立的 - 重載只對參數進行到操作數 功能或類型的 操作者
- 上下文依賴性 - 這抽象調用也取決於 結果
相關問題
- 1. 連接不同的編程語言
- 2. 使用不同編程語言的TCP
- 3. 不同編程語言的隨機數
- 4. 以不同語言編寫notepad ++插件
- 5. 板載Symbian編程語言
- 6. 程序如何使用以不同語言編寫的文件?
- 7. 對於iPhone,您可以編程使用不同的語言嗎?
- 8. 不同的編程語言如何處理除以0?
- 9. 以不同的印度語語言從Asp.net以編程方式發送SMS
- 10. 以區域語言/不同語言開發應用程序
- 11. 可以以編程方式安裝Windows Phone語言語言嗎?
- 12. 編程語言
- 13. 編程語言的原語
- 14. 管理用不同編程語言編寫的併發項目
- 15. Zend的重定向不同的語言
- 16. 編寫的編程語言
- 17. 不同語言的程序和功能在每種編程語言中的概念不相同
- 18. 以新的編程語言實現xunit
- 19. 加載不同的語言html Xcode
- 20. 以不同編程語言訪問的套接字是否可以通信?
- 21. 如何編寫和不同的語言
- 22. 編譯不同的語言在Eclipse上
- 23. 以不同的編程語言在程序主體內部註釋
- 24. 不同語言
- 25. 不同的語言
- 26. 除C++外,哪些編程語言支持運算符重載?
- 27. 以不同的語言獲得Joomla sitename
- 28. 雅虎天氣以不同的語言
- 29. 編程語言C
- 30. NesC編程語言