毕设(三)静态类型
作者:互联网
文:《Python外部函数的静态类型推断》
1、静态类型语言 vs 动态类型语言
(1)动态类型语言(Dynamically Typed Language)
动态类型在解释语言中极为普遍,如 Go、JavaScript、Perl、Python、Ruby 等等。
所谓动态类型语言,就是类型的检查是在运行时
才做。
类型对于变量,属性,方法以及方法的返回类型都是可有可无的,在给变量赋值时才决定它的类型, 之后,还可以赋值不同类型的值,即使是基本类型,比如 C# 装箱(boxing)和拆箱(unboxing),可以把值类型转换成引用类型,引用类型转换成值类型。当需要时,很多类型之间都会发生自动转换,可以把不同的基本类型添加到同一数组(collections)中。
(2)静态类型语言(Statically Typed Language)
静态类型语言常出现于编译语言中,如 C、C++、C#、Java
静态类型语言的类型检查是在运行前的编译阶段
。
(3)对比
语言类型 | 特点 | 优点 | 缺点 |
---|---|---|---|
静态类型语言 | 强类型 ,外部函数声明时带有显式类型 ,为了达到多态会采取一些类型鉴别手段,如继承、接口 |
结构非常规范 ,便于调试 ,类型安全 ;编译的时候就可以 较早发现错误 ,而且还可增进运行时期的性能 。 |
需要写更多的类型相关代码(如声明变量),不便阅读(特别是,当你看别人代码时,会连变量定义也看吗?想必不会,看结构,看方法的含义想必才是本质)。 |
动态类型语言 | 自由形式 ,一般会采用推断类型(鸭子类型,Duck typing) |
方便阅读 ,不需要写非常多的类型相关代码;使用更加动态的类型系統, 分析代码更为简单,减少出错机会 ,才能更加轻松快速的编程 。 |
不便调试,命名不规范时会造成读不懂,不利于理解等。 |
参考:
https://www.cnblogs.com/liuning8023/p/4286044.html
2、类型【可参考】
我的 | 本论文 |
---|---|
list,复合类型_聚合 | 积类型pProduct,表示list,tuple,dict等类型。 |
type,共用体类型【后期加】,包括Union、宏、include等 | 共用体类型pUnion,支持C侧Union这一常见的语言特征。 |
?【参考】 | 对象类型pObject,针对module、iterator等,不在类型集合中,传递给外部函数时会被作为object对象处理。 |
标签:毕设,语言,静态,代码,类型,动态,变量 来源: https://www.cnblogs.com/sybil-hxl/p/15907063.html