gpt4 book ai didi

static-typing - 静态类型和动态类型的定义

转载 作者:行者123 更新时间:2023-12-02 07:40:42 30 4
gpt4 key购买 nike

这两个定义哪个是正确的?

  • 静态类型 - 在编译时检查类型匹配(因此只能应用于编译语言)
  • 动态类型 - 类型匹配在运行时检查,或者根本不检查。 (该术语可应用于编译或解释语言)

  • 静态类型 - 类型分配给变量,所以我会说'x 是 int 类型'
  • 动态类型化 - 类型被分配给值(如果有的话),所以我会说'x is holding an int'

根据这个定义,静态或动态类型与编译或解释语言无关。

哪个是正确的,或者哪个都不正确?

最佳答案

Which is correct, or is neither one quite right?

第一对定义更接近但不太正确。

Statically typed - Type matching is checked at compile time (and therefore can only be applied to compiled languages)

这很棘手。我认为如果一种语言被解释但在执行开始之前进行了类型检查,那么它仍然是静态类型的。 OCaml REPL 几乎就是这方面的一个例子,只是它在技术上将源代码编译(和类型检查)为自己的字节码,然后解释字节码。

Dynamically typed - Type matching is checked at run time, or not at all.

而是:

动态类型 - 类型检查在运行时完成。

Untyped - 未进行类型检查。

Statically typed - Types are assigned to variables, so that I would say 'x is of type int'.

Dynamically typed - types are assigned to values (if at all), so that I would say 'x is holding an int'

变量无关紧要。尽管在许多静态类型语言的源代码中,您只能在变量和函数定义处明确看到类型,但所有子表达式也都具有静态类型。例如,"foo"+ 3 通常是静态类型错误,因为您不能将字符串添加到 int 但不涉及变量。

关于static-typing - 静态类型和动态类型的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11447080/

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