有人可以请解释(例如)与上下文无关和依赖于上下文的重载之间的区别吗?以不同的编程语言重载
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编程语言