gpt4 book ai didi

language-agnostic - 不需要声明变量类型的语言的质量是否是弱类型或动态类型的示例

转载 作者:行者123 更新时间:2023-12-01 02:33:55 24 4
gpt4 key购买 nike

不需要声明变量类型(例如 PHP 和 Perl)的语言的质量是否称为弱类型或动态类型?我很难理解这两个术语。

动态/静态类型与类型转换有关,而弱/强类型与变量的减速有关,我是否正确?

最佳答案

根据:http://en.wikipedia.org/wiki/Type_system#Static_and_dynamic_type_checking_in_practice

Weak typing means that a language implicitly converts (or casts) types when used.



然而:

A programming language is said to use static typing when type checking is performed during compile-time as opposed to run-time.



因此,强/弱和静态/动态是两个不同的维度。一种语言将是强/弱之一,也是静态动态之一。例如,Ruby 和 Javascript 都是动态类型的,但是 Ruby 是强类型的,而 Javascript 是弱类型的。也就是说,在 Ruby 中,以下代码会出现错误:
1.9.2p290 :001 > 'a'+1
TypeError: can't convert Fixnum into String

而在 JavaScript 中,你会得到:
> 'a'+1
>> 'a1'

因此,强类型语言要求您将两个变量转换为相同类型以将它们组合起来(例如,使用 1.to_s),而弱类型语言将尝试使用一些额外的内置变量将两个变量强制转换为相同类型- 在语言逻辑中 - 在 JavaScript 的情况下,将任何内容与 String 组合都会将其转换为 String 值。

见: http://www.artima.com/weblogs/viewpost.jsp?thread=7590进一步解释。

关于language-agnostic - 不需要声明变量类型的语言的质量是否是弱类型或动态类型的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11254393/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com