静态和动态 编程语言有什么区别?我知道这都是关于类型系统的,但我正在寻找更清晰的说明。
最佳答案
静态打字
静态类型意味着在运行程序之前已知类型并检查其正确性。这通常由语言的编译器完成。例如,在运行程序之前,以下 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/