本文共 1635 字,大约阅读时间需要 5 分钟。
Groovy中所有类型均为引用类型。即使是Java中的8种Primitive Type,groovy中背后使用的都是对应的包装类。没有boxing,unboxing操作.
一下为一些基本类型操作
//Integerdef age = 10println("age++ " + (age++)) // age++ 10, 先输出,再自增assert age == 11println("++age " + (++age)) // ++age 12,先自增,再输出assert age == 12assert 12.toString() == age.toString() // 可直接对常量使用方法assert 12.8.toInteger() == 12 // 可直接对常量使用方法//floatdef weight_f = 1.2fdef weight_F = 1.2Fassert weight_f.class.name == Float.nameassert weight_F.class.name == Float.name//doubledef weight_d = 1.2ddef weight_D = 1.2Dassert weight_d.class.name == Double.nameassert weight_D.class.name == Double.name//longdef meter_l = 1000Lassert meter_l.class.name == Long.name//bigIntegerdef universe_age_g = 1000Gassert universe_age_g.class.name == BigInteger.name//bigDecimaldef decimal_default = 1.2 ///注意默认为 bigDecimal类型,和Java不同def decimal_b= 1.2gassert decimal_default.class.name == BigDecimal.nameassert decimal_b.class.name == BigDecimal.name// operatorsdef compare_a = 20def compare_b = 10assert compare_a > compare_bassert compare_b < compare_aassert (compare_a <=> compare_b) == 1 // <=> 相当于 compareTo函数assert 5 / 2 == 2.5 //默认bigDecimalassert 3 % 2 == 1 //取余数 a.mod(b)assert 5.intdiv(2) == 2 //整除assert compare_a >> 2 == 5 //右移两位,相当于除以4assert compare_a << 2 == 80 //左移两位,相当于乘以4//动态数据类型变化 --- Groovy中所有类型均为 引用类型。 即使是Java中的8种Primitive Type,groovy中背后使用的都是对应的包装类。没有boxing,unboxing操作def type_variant = 100assert type_variant.class.name == Integer.nametype_variant = 100fassert type_variant.class.name == Float.nametype_variant = 100dassert type_variant.class.name == Double.nametype_variant = "STRING"assert type_variant.class.name == String.name
转载地址:http://napaz.baihongyu.com/