Arreglos y Mapas
Aquí te dejamos el código utilizado en esta lección:
//ARREGLOS
RuleContext arrays {
Rule rule {
// Array array
Array arString = ['hola', 'chau', 'otro']
Array arLocation = [Location(), Location()]
Array arBool = [true, false, true, false]
Integer a = arString.size() // 3
String b = arString.get(2) // "otro"
arString.remove(1) // ["hola", "otro"]
String c = arString.pop() // ["hola"] // c == "otro"
Array arInt = arString.selected() // [] // No tiene seleccionados
arString.setSelected([0]) // Al ejecutar nuevamente selected(), este retornara [0]
Location loc = arLocation.shift() // [Location()] // ademas retorna el elemento retirado
arBool.reverse() // [false, true, false, true]
Array arInteger = [5, -1, 0, 9, 2]
arInteger.sort() // [-1, 0, 2, 5, 9]
arString.removeAll() // []
Array arInteger1 = arInteger.clone()
Bool c = (arInteger1 == arInteger) // false
Integer int = arInteger.indexOf(9) // 4
int = arInteger.indexOf(4) // -1
arString.add('otro') // ['otro']
arInteger.set(3, -4) // [-1, 0, 2, -4, 5, 9]
arInteger.push(-1) // [-1, 0, 2, -4, 5, 9, -1]
Array arInteger9 = [1, 2, -3]
arInteger9.concat(arInteger) // [1, 2, -3, -1, 0, 2, -4, 5, 9, -1]
}
}
//MAPAS
RuleContext mapas {
Rule rule{
// Map map
Map mapString = {"a": "hola", "b": "chau", "c": "otro"}
Map mapInteger = {"a": 1, "b": 2, "c": 3}
Integer a = mapString.size() //3
String b = mapString.get("b") // "chau"
String c = mapString.get("c", "defaultValue") // "otro"
c = mapString.get("d", "defaultValue") // "defaultValue"
mapString.remove("a") // {"b": "chau", "c": "otro"}
mapString.removeAll() // {}
Map mapInteger1 = mapInteger.clone()
Bool d = mapInteger1 == mapInteger //false, diferentes referencias
mapInteger.hasKey("a") //true
mapInteger.hasKey("otro") //false
Array keys = mapInteger.keys() // ["a", "b", "c"]
Array values = mapInteger.values() // [1, 2, 3]
mapInteger.set("key1", 5) //{"a": 1, "b": 2, "c": 3, "key1": 5}
}
}
//ALCANCE DE EJECUCION DE VARIABLES
//1) VARIABLES GLOBALES
Application {
String strVar
Integer intVar
Date dateVar
OnInit {
strVar = "otroValor"
}
}
RuleContext ruleContext {
Rule rule {
strVar = "hola"
}
}
Module mod {
void fun () {
strVar = "chau"
}
}
Experience Main {
OnResume {
strVar = "onResume"
}
}
//2) CONSTANTES
RuleContext constants {
Rule rule {
constant1 = "otro" //no se puede asignar un nuevo valor a una constante
modVar.var2 = -9
var2 = 7 //Esta variable no puede ser accedida sin el modulo, ERROR
}
}
//3) Variables de Modulos
Module modVar {
String var1
Integer var2
void fun () {
var1 = "unValor"
var2 = 5
modVar.var1 = "otroValor"
modVar.var2 = 4
param1 = "otro" //esta variable no existe en este contexto, ERROR
}
}
//4) PARAMETROS DE FUNCIONES
Module params {
void fun (String param1, Location loc1, Bool param2) {
param1 = "as"
loc1 = null
param2 = false
}
}