Questions tagged «weak-typing»

7
在PHP中类型转换变量,这样做的实际原因是什么?
正如我们大多数人所知道的,PHP具有弱类型。对于那些不喜欢的人,PHP.net说: PHP在变量声明中不需要(或不支持)显式类型定义。变量的类型由使用该变量的上下文确定。 喜欢它还是讨厌它,PHP会即时重新发布变量。因此,以下代码有效: $var = "10"; $value = 10 + $var; var_dump($value); // int(20) PHP还允许您显式转换变量,如下所示: $var = "10"; $value = 10 + $var; $value = (string)$value; var_dump($value); // string(2) "20" 太酷了……但是,对于我自己的一生,我无法想到这样做的实际原因。 我对支持Java的语言进行强类型输入没有问题。很好,我完全理解。另外,我知道-并充分了解- 函数参数中的类型提示的用处。 上面的引用解释了我类型转换的问题。如果PHP可以随意交换类型,即使您强制转换了类型,PHP也可以这样做。当您在操作中需要某种类型时,它可以即时执行。这使得以下内容有效: $var = "10"; $value = (int)$var; $value = $value . ' TaDa!'; var_dump($value); // string(8) "10 …


4
为什么仍在积极开发弱类型语言?
我想知道为什么仍在积极开发弱类型语言。例如,一个人可以从写作中获得什么好处 $someVar = 1; (...) // Some piece of code $someVar = 'SomeText'; 而不是使用截然不同的版本 int someInt = 1; (...) string SomeString = 'SomeText'; 确实,您需要在第二个示例中声明一个附加变量,但这真的有害吗?并非所有语言都应努力实现强类型化,因为它会在编译时强制执行类型安全性,从而避免类型转换中的某些陷阱?

4
对设计模式和OOP实践的思考如何在动态和弱类型语言中发生变化?
这些方面已经有了一个相当有用的问题(“ 非OOP设计模式? ”),但是我对于刚开始使用动态和弱类型语言的人的过渡观点感到更加好奇。 那就是:假设我已经使用C ++,C#或Java进行编程多年,并从GoF设计模式,Fowler 企业应用程序体系结构模式,SOLID原理等方面吸取了很多智慧。 m涉猎Ruby,Python,JavaScript等,并想知道我的知识如何应用。大概在很多情况下我都可以进行直接翻译,但是几乎可以肯定的是,这并不能充分利用我的新设置。仅仅靠鸭子打字就可以改变我很多基于界面的思想。 什么保持不变?有什么变化?是否有新手应该知道的诸如SOLID之类的指导原则或动态语言新手应该知道的规范模式(也许是全新的)?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.