加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

groovy – 鸭式打字与静态打字有什么优势?

发布时间:2020-12-14 16:38:42 所属栏目:大数据 来源:网络整理
导读:我正在与Groovy进行更多的研究和实验,我试图围绕在Groovy中实现Java的不能/不做的事情的优缺点。动态编程对我来说仍然是一个概念,因为我已经深入静态和强类型语言。 Groovy给了我duck-type的能力,但我真的看不到价值。鸭式打字比静态打字更有效率?我的代
我正在与Groovy进行更多的研究和实验,我试图围绕在Groovy中实现Java的不能/不做的事情的优缺点。动态编程对我来说仍然是一个概念,因为我已经深入静态和强类型语言。

Groovy给了我duck-type的能力,但我真的看不到价值。鸭式打字比静态打字更有效率?我的代码实践中可以做什么样的事情来帮助我掌握它的好处?

我在Groovy中提出这个问题,但我明白,这不一定是Groovy的问题,所以我欢迎每个代码阵营的答案。

解决方法

接下来,哪个更好:EMACS或vi?这是正在进行的宗教战争之一。

以这种方式思考:任何程序是正确的,如果语言是静态类型的,将是正确的。什么静态打字是让编译器有足够的信息在编译时检测类型不匹配,而不是运行时。如果您在进行渐进式编程时,可能会感到烦恼,虽然(我保持)如果您正在清楚您的程序,这并不重要;另一方面,如果您正在建立一个非常大的程序,如操作系统或电话交换机,数十或数千名上班的人员,或具有非常高的可靠性要求,那么他的编译器能够为您检测大量的问题,而无需测试用例来运行正确的代码路径。

动态打字不是一个新的不同的东西:C,例如,是有效的动态类型,因为我总是可以把一个foo *放到一个吧*。这只是意味着我的责任是C程序员从来没有使用适合于酒吧*的代码,当地址真的指向一个foo *时。但是由于大型程序的问题,C增长了lint(1)这样的工具,通过typedef来强化其类型系统,最终在C中开发出一种强类型的变体。 (而且,当然,C反过来又开发出强大的打字方式,所有的各种各样的cast和泛型/模板以及RTTI。

另一件事,虽然—不要将“敏捷编程”与“动态语言”混淆。 Agile programming是关于人们在项目中一起工作的方式:项目能否适应不断变化的需求,以满足客户的需求,同时为程序员保持人性化的环境?它可以用动态类型语言完成,而且通常是因为它们可以更有效率(例如Ruby,Smalltalk),但是可以在C甚至汇编器中成功完成。事实上,Rally Development甚至使用敏捷方法(特别是SCRUM)做营销和文档。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读