在groovy中输入强制
常规支持什么样的类型强制?
我看到地图强制和封闭强制.还有别的吗? 类型强制和类型推断之间有什么区别? def i = 1000 // type infere to Integer i = 1000000000000 // type infere to Long or is this type coercion? 解决方法
Groovy可以使用在运行时分配类型的动态无类型变量.类型推断是指自动推断表达式的类型.
在您的示例中:def i = 1000将java.lang.Integer的实例分配给变量 几个简单的测试作为例子: assert "Integer" == 1000.class.simpleName assert "Long" == 1000000000000.class.simpleName assert "BigDecimal" == 3.14159.class.simpleName assert "Float" == 3.14159f.class.simpleName 根据Groovy的文档:“Closures in Groovy工作类似于”方法指针“,使代码能够在稍后的时间点编写和运行”. 此外,在处理确定类型的集合时,可以推断传递给集合类型的操作的闭包. 当将变量传递给不同类型的方法或比较不同类型的变量时,类型强制就在起作用.在比较不同类型的数字时,类型强制规则适用于在比较之前将数字转换为最大数字类型.所以以下内容在Groovy中有效. Byte a = 12 Double b = 10 assert a instanceof Byte assert b instanceof Double assert a > b Groovy“as”关键字用于以下情况: >用于“Groovy”转换以将一种类型的值转换为另一种类型 除了map和闭包中的类型强制之外,还有“Groovy Truth”,它将表达式中的类型计算为TRUE或FALSE. > null为false 参考文献: 静态Groovy和并发:在行动中键入推理 Groovy运算符重载 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |