静态语言和动态语言一般只是对数据类型来说的,静态语言数据类型(变量类型)是在定义中指定的,且一经定义就不能改变,动态语言的数据类型是可以变化的。
编译型语言则是指 从程序代码 到 可执行程序 需要经过编译的环节这样一类语言,比如C、C++、Java都是编译型语言
与之对应的是解释型语言,它们通常在一个指定的运行时环境下直接运行,而不需要编译,比如javascript、python等
静态语言与动态语言的分类 和 编译型语言与解释型语言分类 是对编程语言分类的不同方面,二者没有必然的联系,虽然说同时属于静态语言和编译语言,或者同时属于动态语言和解释型语言 的都比较多,但它们之间并不是必然相关。
go是一种编译型语言,同时也是一种静态语言。
此外编译型语言和解释型语言的划分有时对某个语言来说也是不定的,比如python,通常是解释型的,不过也可以进行一定的编译生成pyc类似的类编译码,从而运行加载速度更快,而C语言在实现了对应的运行时环境后,也可以解释执行(起码在一定程度下可以解释执行)