首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >没有鸭子类型的动态类型?

没有鸭子类型的动态类型?
EN

Stack Overflow用户
提问于 2010-08-01 22:02:16
回答 2查看 975关注 0票数 7

我习惯了动态类型,这意味着在运行时检查对象/非面向对象结构的类型信息,并抛出某种类型错误,即如果它叫起来像鸭子,它就是鸭子。是否有不同类型的动态类型(请详细介绍)。

EN

回答 2

Stack Overflow用户

发布于 2010-11-09 20:56:41

是的,完全正确。鸭子类型是一种习惯用法,意思是此时值的类型是基于它现在拥有的字段和方法的。动态类型只是说类型与运行时值相关联,而不是与静态变量和参数相关联。这两者之间是有区别的,您可以在没有前者的情况下使用后者。

例如,如果您使用PHP编程,并将自己限制为基本类型,而不使用OO,那么您将使用动态类型,而不使用鸭子类型。

票数 5
EN

Stack Overflow用户

发布于 2010-08-01 22:45:49

不,动态类型是指值有类型而变量没有类型,所以大多数类型检查都是在运行时完成的。因此,基本上,如果值像鸭子一样行走或叫,它就是鸭子,否则就会抛出错误。foo类型实际上只是描述了动态类型的一个功能,它确保了它是类型安全的(即,一个方法只有在变量Duck‘具有正确的属性或可以执行该方法时才会运行)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3382293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档