博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
语言类型的相关总结
阅读量:6413 次
发布时间:2019-06-23

本文共 1117 字,大约阅读时间需要 3 分钟。

“再来看看静态类型语言的好处:由于在运行之前进行了类型检查,一方面代码的可靠性增强,符合‘发现错误要尽早’的原则;另一方面编译器有可能藉此优化机器代码以提高运行效率,同时相比前者节省了运行期的耗费在类型检查上的时间和空间。此外,变量类型的声明彰显了编程者的意图,有辅助文档的功效。”冒号有条有理地解释着,“两种类型的体制可以用两种法律原则来类比:静态类型检查类似‘疑罪从有’的有罪推定制——在被证明合法之前是非法的,动态类型检查类似‘疑罪从无’的无罪推定制——在被证明非法之前是合法的。至于如何取舍,套用一句话:‘Static Typing Where Possible, Dynamic Typing When Needed’。不妨理解为:尽可能守规则,必要时求变通。”

 

与此相对地,强类型语言(strongly-typed language)着意贯彻类型控制,为保障数据的完整性和代码的安全有效性,一般不允许隐性类型转换[6]。如果一定需要类型转换,必须是显性转换,一般通过我们熟知的铸型(cast)来完成。”

 

  • 尽管动态语言大多数是动态类型语言,但二者并不是一回事。
  • 数据类型包含两个要素:允许取值的集合和允许参与的运算。
  • 数据类型既有针对机器的物理意义,又有针对人的逻辑意义,提高了代码的安全性和抽象性。
  • 动态类型的类型检查发生在运行期间,静态类型的类型检查发生在编译期间(运行之前)。
  • 动态类型的变量不需要显式声明,静态类型的变量需要通过显式声明或类型推断。
  • 鸭子类型是动态类型的一种风格,允许非继承性多态,即一个对象的类型可以由其接口集合来确定,不需要通过显式继承。它有利于代码重用,但也可能造成误用和滥用。
  • 动态类型语言的优点:代码简明灵活、易于重用,适合泛型编程和快速原型开发。
  • 静态类型语言的优点:运行之前的类型检查增强了代码的可靠性,使编译器有可能进行优化处理从而提高运行效率,节省了运行期的类型检查所占用的时间和空间,同时类型声明有辅助文档的功效。
  • 静态类型检查实行“疑罪从有”的有罪推定制,动态类型检查实行“疑罪从无”的无罪推定制。取舍的原则是:Static Typing Where Possible, Dynamic Typing When Needed。即尽可能守规则,必要时求变通。
  • 类型的动静以类型的绑定时间来划分,类型的强弱以类型的约束强度来划分,它们之间没有必然联系。弱类型语言允许类型的隐性转化,被认为是类型不安全的;而强类型语言则一般不允许这种转化,被认为是类型安全的。

https://www.cnblogs.com/xyz98/archive/2009/04/27/1444394.html

你可能感兴趣的文章
p图软件pⅰc_娱乐圈最塑料的夫妻,P图永远只P自己,太精彩了吧!
查看>>
怎么判断冠词用a还是an_葡语干货 | 葡萄牙语冠词用法整理大全
查看>>
js传参不是数字_JS的Reflect学习和应用
查看>>
三个不等_数学一轮复习05,从函数观点看方程与不等式,记住口诀与联系
查看>>
卡尺测量的最小范围_汽车维修工具-测量用具
查看>>
网优5g前景_5G网络优化师前景怎么样?
查看>>
竞态条件的赋值_[译] part25: golang Mutex互斥锁
查看>>
delmatch oracle_完美完全卸载(清除)oracle数据库的方式(方法)
查看>>
pyqt 滚动条 美化_Pyqt5 关于流式布局和滚动条的综合使用示例代码
查看>>
51单机片 编译hex_单片机爬坑记-05-编译环境(完)
查看>>
java 正则表达式 img_Java正则表达式获得html字符串里的<img src=""/> 中的url列表
查看>>
java 文件crc校验_一个获取文件crc32校验码的简洁的java类 | 学步园
查看>>
java flatmapfunction_Java8 Stream flatmap中间操作用法解析
查看>>
java rmi spring 4.0_Java Spring RMI一些尝试
查看>>
JAVA怎么连接华为的HDFS系统_JAVA-API操作HDFS文件系统(HDFS核心类FileSystem的使用)...
查看>>
java牛客网四则运算_数据库刷题—牛客网(51-61)
查看>>
Java get set6_JDK6的新特性(转)
查看>>
java发送邮件 不登陆_Java邮件到Exchange Server“不支持登录方法”
查看>>
编程学习初体验(5. 如何自学编程)(2)
查看>>
思科ISR G1与ISR G1C的区别
查看>>