Groovy value types

The literal values in Groovy are similar to those in Java, but Groovy allows for generic variables that can hold any type and provides no enforcement and it allows you to declare variables with types and then enforce the type.

Declare variables with def

Declaring a varable using def allows for the flexibility most dynamic programming languges provide.

def x = 23 println x // 23 x = "hello" println x // hello x = 3.14 println x // 3.14 x = ["abc", "def"] println x // [abc, def] println x[0] // abc x = true println x // true

Declare variable as Integer

Integer n = 19 println n // 19 n = 3.14 println n // 3 n = "world" // GroovyCastException // n = [2, 3] // GroovyCastException

If we declare a variable to be Integer it provides automatic casting from other numbers, but does not allow the assignment of other types. For example it will throw the following exception if we try to assign a string or a list:

Caught: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'world' with class 'java.lang.String' to class 'java.lang.Integer' org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'world' with class 'java.lang.String' to class 'java.lang.Integer' at variable_types_integer.run(variable_types_integer.groovy:4)

byte

byte b = 1 println b // 1 b = 127 println b // 127 b++ println b // -128 b = 200 println b // -56 b = 3.4 println b // 3 b = "hello" // GroovyCastException

Numbers

// primitive types byte b = 1 char c = 2 short s = 3 int i = 4 long l = 5 // infinite precision BigInteger bi = 6 // primitive types float f = 1.234 double d = 2.345 // infinite precision BigDecimal bd = 3.456

Boolean

We can declare a variable as boolean and then it can only hold true or false, but we can assign any type of value to it and it will be automatically converted to either true or false.

boolean b = false println b // false b = true println b // true b = 2 > 3 println b // false b = 2 println b // true b = 0 println b // false b = "abc" println b // true b = "" println b // false b = ["hello"] println b // true b = [] println b // false

Groovy Truth provides the details of the coercion to boolean values.

Syntax

See the Groovy syntax for more details.

Comments

boolean b = ""; returns false; however not b = "" even with prior declaration and assignment of b as boolean b = false per se within groovysh shell command prompt

timestamp: 2018-05-27T08:30:01 tags:

  • boolean
  • int
  • byte
  • Integer