To be useful, persistent variables must be mutated. Persistents can only be mutated in the postlude.

The following statements mutate persistent variables:

If the persistent variable is bound to a complex data structure (i.e. maps and arrays), <pvar> can contain a hash path referencing part of the structure (see example below). 

Example


always {
  ent:a := 1; 										// sets entity variable "a" to 1
  app:b{"foo"} := 1 + my_var.defaultsTo(0); 		// sets top-level key "foo" in the map inside of app variable "b"
  ent:b{["flip", "flop"]} := "this is a string"; 	// hash path into map inside of entity variable "b" (sets the value keyed to "flop" which is keyed to "flip")
  ent:c := null;									// sets entity variable to null
  clear ent:a										// clears the entity variable so it does not exist
}