我对这些条款感到困惑。根据我的理解,强制是当语言转换变量类型和重载时,语言使用相同的符号不止一个目的。强制和超载有什么区别?
1
A
回答
1
让我们暂时将计算机语言与面包店进行比较:当bake
函数超载时,可以有许多不同的烤箱(实现),一个用于面包,一个用于披萨等。只需要一个烤箱,但对于一些你想烤的东西,你需要一个小工具(“强制功能”),以使它适合那个烤箱。
因此,重载有多种实现(烤箱)由参数类型(食物)决定,强制有从每个参数类型(食物)到单一类型的多个强制函数(小工具)需求)
无论你有很多小工具或许多烤箱,他们应该由食物的类型独特的决定。当你有意大利食物的烤箱,而另一种食物含有西红柿时,你会遇到问题:如何做比萨饼?这是例如Haskell程序员知道“重叠类型特定”。它有时可以解决,例如如果一个烤箱严格地比另一个更专业(一个用于意大利食物,另一个用于托斯卡纳食物)
0
从一个非常普遍的角度来看,主要区别是,而超载是明确的(由你控制,程序员),强制类型转换是隐式(由编译器控制)。
相关问题
- 1. 方法覆盖和功能覆盖/超载有什么区别
- 2. 复制和克隆有什么区别?
- 3. “复制”和“保留”有什么区别?
- 4. 有什么区别`和$(Bash中有什么区别?
- 5. 强稳定,弱稳定和超稳定匹配有什么区别?
- 6. ==和===有什么区别?
- 7. ==和===有什么区别?
- 8. 有什么区别? :和||
- 9. ==和===有什么区别?
- 10. '=='和'==='有什么区别?
- 11. `&`和`ref`有什么区别?
- 12. 有什么区别:。!和:r!?
- 13. | 0和~~有什么区别?
- 14. Appender和〜有什么区别?
- 15. opscode厨师刀厨网站下载和刀超市下载有什么区别
- 16. xtype和别名有什么区别?
- 17. bitbucket中增强和建议有什么区别
- 18. 有什么区别
- 19. 有什么区别
- 20. 有什么区别?
- 21. 有什么区别?
- 22. 有什么区别?
- 23. 有什么区别
- 24. 有什么区别?
- 25. 有什么区别?
- 26. 有什么区别
- 27. 有什么区别
- 28. 套接字的连接和读取超时有什么区别?
- 29. 时间多线程和超线程之间有什么区别?
- 30. 用户postgres和超级用户有什么区别?