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

强类型语言的关键方面是什么?

如何解决《强类型语言的关键方面是什么?》经验,为你挑选了4个好方法。

什么使语言强烈输入?我正在寻找强类型语言最重要的方面.

昨天我问PowerShell是否是强类型的,但是没有人能就"强类型"的定义达成一致,所以我想澄清这个定义.

随意链接到维基百科或其他来源,但不要只剪切和粘贴您的答案.



1> Jörg W Mitta..:

"强类型"一词没有达成一致的定义.

它在火焰战中成为一个"伟大"的论点,因为每当有人被证明是错误的时候,他们就可以重新定义它以表达他们想要的意思.除此之外,该术语没有任何实际意义.

最好不要使用该术语,或者,如果您使用该术语,则首先严格定义它.如果您看到其他人使用它,请让他定义该术语.

每个人都有自己的定义.我见过的一些是:

强类型=静态类型

strong typed =显式键入

强类型=名义上键入

强类型=键入

strong typed =没有隐式类型转换,只有显式

strong typed =根本没有类型转换

强类型=我理解/弱类型=我不明白的东西

strong typed = C++/weakly typed =其他一切

strong typed = Java/weakly typed =其他一切

strong typed = .NET/weakly typed =其他一切

strong typed = 我的编程语言/弱类型= 您的编程语言

在类型理论中,存在一种类型系统比另一种更强的概念.特别是,如果存在一个表达式e1,使得它是由一种类型的系统接受T1,而是由一个类型系统拒绝T2,然后T2被认为是T1.这里有两件重要的事情需要注意:

    这是一种比较,而不是绝对的:没有强者弱者,只有强者弱者

    该术语没有隐含的价值; 更强并不意味着更好



2> e-satis..:

根据BC Pierce的说法,他写了"类型和编程语言以及高级类型和编程语言":

我花了几个星期的时间试图理清"强类型","静态类型","安全"等术语,并发现它非常困难......这些术语的用法是多种多样的无用.

所以难怪为什么你的同事不同意.

我会用最简单的答案:如果你可以连接一个字符串和一个int而不进行强制转换,那么它就不是强类型的.

编辑:正如评论中所述,Java就是这样:-(



3> Mike Deck..:

关键是要记住静态类型和强类型之间的区别.强类型语言只是意味着一旦被赋值,给定变量将始终表现为某种类型,直到重新分配为止.根据定义,像Java和C#这样的静态类型语言是强类型的,但许多流行的动态语言如Ruby和Python也是如此.

所以用强类型语言

x = "5"

x将始终是一个字符串,永远不会是一个整数.

在某些弱类型语言中,你可以做类似的事情

x = "5"
y = x + 3
// y is now 8


C可以说是静态的,弱类型的.这很奇怪,但可能.

4> MattC..:

人们混淆静态输入强类型.静态类型表示"字符串是字符串是字符串".强类型意味着"一旦你将它作为一个字符串,它将被视为一个字符串,直到它被重新分配为不同的东西."

编辑:我看到其他人确实指出了这一点:)

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