首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用def关键字的Groovy默认类型

使用def关键字的Groovy默认类型
EN

Stack Overflow用户
提问于 2016-07-07 10:59:47
回答 1查看 104关注 0票数 0

我在groovy中做了一个简单的函数,在datetime变量上,我有这样的行

代码语言:javascript
运行
复制
def minutes = date.getAt(Calendar.MINUTE)

出于好奇,我检查了时间性能,它工作了3,5秒,输入的大小大约有90k个日期。一个简单的改变,从defint,使我的代码在2,7-2,5k内工作。getAt()返回int,但分钟具有BigDecimal类型(在JMC中签入)。类型推断算法在groovy中是如此糟糕,还是我没有读过关于def关键字的教程的某些部分?在使用def时,是否存在具有默认类型的表?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-07 12:31:27

getAt()返回int,但分钟具有BigDecimal类型

minutes的类型是一个整数

代码语言:javascript
运行
复制
def minutes = date.getAt(Calendar.MINUTE)

您可以通过在Groovy shell或控制台中运行以下代码来验证这一点

代码语言:javascript
运行
复制
groovy:000> new Date().getAt(Calendar.MINUTE).class
===> class java.lang.Integer

getAt返回一个int,该int通过对.class的调用自动装箱到Integer

在使用def时,是否存在具有默认类型的表?

变量的类型不影响方法的类型,但是如果您担心Groovy的动态类型影响代码的性能,请使用@CompileStatic注释。

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

https://stackoverflow.com/questions/38243787

复制
相关文章

相似问题

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