静态和动态 编程语言有什么区别?我知道这都是关于类型系统的,但我正在寻找更清晰的说明。

最佳答案

静态打字

静态类型意味着在运行程序之前已知类型并检查其正确性。这通常由语言的编译器完成。例如,在运行程序之前,以下 Java 方法会导致编译错误:

public void foo() {
    int x = 5;
    boolean b = x;
}

动态打字

动态类型意味着只有在程序运行时才知道类型。例如,可以毫无问题地运行以下 Python(3,如果重要)脚本:
def erroneous():
    s = 'cat' - 1

print('hi!')

它确实会输出 hi! 。但是如果我们调用 erroneous :
def erroneous():
    s = 'cat' - 1

erroneous()
print('hi!')

当调用 TypeError 时,将在运行时引发 erroneous

关于dynamic - 静态和动态编程语言之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20563433/

10-15 03:44