我看到这些术语在编程中遍布各地,我对它们的含义有一个模糊的概念.搜索显示,事实上,这些事情已被问到堆栈溢出.据我所知,语言中的静态/动态类型与强/弱类型略有不同,但这种差异是我的意思.不同的来源似乎使用不同的含义甚至可以互换地使用这些术语.我找不到谈论两者的地方,实际上说明了差异.如果有人能够在这里为我和世界其他地方清楚地说明这一点,那会更好.
terminology static-typing weak-typing strong-typing dynamic-typing
我遇到过一些链接,说Python是一种强类型语言.
但是,我认为在强类型语言中你不能这样做:
bob = 1
bob = "bob"
Run Code Online (Sandbox Code Playgroud)
我认为强类型语言在运行时不接受类型更改.也许我对强/弱类型的定义错误(或过于简单).
那么,Python是一种强类型还是弱类型的语言?
我在PHP7中看到了这个新系列,但没有人真正解释它的含义.我用谷歌搜索了它,所有他们谈论的是你是否会启用它或者不喜欢民意调查类型.
declare(strict_types = 1);
它有什么作用?它如何影响我的代码?我应该这样做吗?一些解释会很好.
根据我的理解,动态类型与弱类型相同,强类型与静态类型相同.有什么不同?谢谢
有人能告诉我什么是强打字和弱打字意味着什么更好?
prototyping static-typing weak-typing strong-typing dynamic-typing
由于这等于运算符(== VS ===)应该在JavaScript中的比较中使用?表示它们基本相同,除了' ==='也确保类型相等,因此' =='可能执行类型转换.在Douglas Crockford的JavaScript:The Good Parts中,建议始终避免' =='.但是,我想知道设计两组相等算子的原始思想是什么.
您是否看到过使用' =='实际上比使用'更合适' ===的情况?
我一直认为C++是最强类型的语言之一.
所以我很震惊地看到本文的表3表明C++是弱类型的.
显然,
C和C++被认为是弱类型的,因为由于类型转换,人们可以将结构的字段解释为整数作为指针.
类型铸造的存在是否重要?这种演员的明确性是否无关紧要?
更一般地说,C++的弱类型是否真的被普遍接受?为什么?
我理解它的方式,PHP中允许以下内容,因为它是一种弱类型的语言.
$var = 'Hello';
$var = 5;
Run Code Online (Sandbox Code Playgroud)
我刚刚安装了一个Windows版本的Python 2.6,我希望它不要让我像这样更改类型,但上面代码的Python等效工作就像在PHP中一样!
>>> var = "Hello"
>>> type(var)
<type 'str'>
>>> var = 5
>>> type(var)
<type 'int'>
Run Code Online (Sandbox Code Playgroud)
我对弱/强打字的理解有缺陷吗?
首先,我已经看过以下帖子以避免重复的问题.
/sf/ask/82930221/
为什么我不能使用"匈牙利表示法"?
是否真的有必要的前缀("匈牙利表示法")?
人们在现实世界中使用匈牙利命名约定吗?
现在,所有这些帖子都与C#,C++,Java - 强类型语言相关.
我确实理解在编译之前知道类型时不需要前缀.
不过,我的问题是:
考虑到在运行时之前无法看到对象的类型这一事实,是否值得在基于解释器的语言中使用前缀?
编辑:如果有人可以将此帖子作为社区维基,请执行.我对这篇文章的声誉(或负面声誉)几乎不感兴趣.
.Net中强类型数据集的含义是什么?任何人都可以用清晰简洁的例子来解释吗?
而且,强类型数据集和弱类型数据集之间有什么区别?
weak-typing ×10
python ×3
c# ×1
c++ ×1
dataset ×1
dynamic ×1
equality ×1
interpreter ×1
javascript ×1
matlab ×1
php ×1
php-7.2 ×1
prototyping ×1
static ×1
terminology ×1