当前位置:  开发笔记 > 编程语言 > 正文

有人能告诉我什么是强打字和弱打字意味着什么更好?

如何解决《有人能告诉我什么是强打字和弱打字意味着什么更好?》经验,为你挑选了3个好方法。

有人能告诉我什么是强打字和弱打字意味着什么更好?



1> JoeBloggs..:

这将是理论上的答案,但实践方面似乎被忽视了......

强类型意味着您不能使用一种类型的变量而另一种变量(或限制这样做).弱键意味着你可以混合使用不同的类型.例如,在PHP中,您可以混合数字和字符串,PHP不会抱怨,因为它是一种弱类型的语言.

$message = "You are visitor number ".$count;

如果它是强类型的,你必须将$ count从一个整数转换为一个字符串,通常使用cast进行转换:

$message = "you are visitor number ".(string)$count;

......或功能:

$message = "you are visitor number ".strval($count);

至于哪个更好,这是主观的.强类型的倡导者会告诉你,它会帮助你避免一些错误和/或错误,并帮助传达变量的目的等.他们还会告诉你,弱类型的拥护者会称强类型" 不必要语言绒毛,由于常识而变得毫无意义,或类似的东西.作为弱打字组的携带卡片的成员,我不得不说他们有我的号码......但我也有他们的号码,可以把它放在一个字符串:)


"和*我*可以把它放在一个字符串中"很好.为力量的弱侧+1
"强类型意味着你不能使用一种类型的变量来预期另一种变量".强弱不是关于变量,而是关于价值.我想你应该说:"强类型意味着你不能使用一种*值*,而另一种是预期的".

2> Peter Becker..:

"强类型"及其相反的"弱打字"在含义上相当薄弱,部分原因在于被认为是"强"的概念可能因你所求的人而异.例如,C被不同的作者称为"强类型"和"弱类型",它实际上取决于你比较它.

通常,如果类型系统能够表达与另一个类型相同的约束,则应该认为它更强.然而,两种类型的系统通常不具有可比性 - 一种可能具有另一种缺乏的特征,反之亦然.任何关于相对优势的讨论都取决于个人品味.

拥有更强大的类型系统意味着编译器或运行时将报告更多错误,这通常是一件好事,尽管它可能以必须手动提供更多类型信息为代价,这可能被认为是不值得的.我认为"强打字"通常会更好,但你必须考虑成本.

同样重要的是要意识到"强类型"通常被错误地使用而不是"静态类型"或甚至"清单类型"."静态类型"表示在编译时存在类型检查,"清单类型"表示类型是显式声明的.清单输入可能是使类型系统更强大的最着名方法(想想Java),但您可以通过其他方式(如类型推断)来增加强度.



3> Greg Sexton..:

我想重申的是弱类型是一样的动态类型.

这是一篇关于这个主题的写得很好的文章,如果你不确定强,弱,静态和动态类型系统之间的区别,我肯定会建议给它一个读.它详细说明了这些差异比简短答案中预期的要好得多,并且有一些非常具有启发性的例子.

http://en.wikipedia.org/wiki/Type_system

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有