RosettaCodeData/Task/Variables/Lasso/variables.lasso

42 lines
1.1 KiB
Plaintext

// declare thread variable, default type null
var(x)
$x->type // null
// declare local variable, default type null
local(x)
#x->type // null
// declare thread variable, initialize with a type, in this case integer
var(x = integer)
// declare local variable, initialize with a type, in this case integer
local(x = integer)
// assign a value to the thread var x
$x = 12
// assign a value to the local var x
$x = 177
// a var always has a data type, even if not declared - then it's null
// a var can either be assigned a type using the name of the type, or a value that is by itself the type
local(y = string)
local(y = 'hello')
'\r'
// demonstrating asCopyDeep and relationship between variables:
local(original) = array('radish', 'carrot', 'cucumber', 'olive')
local(originalaswell) = #original
local(copy) = #original->asCopyDeep
iterate(#original) => {
loop_value->uppercase
}
#original // modified
//array(RADISH, CARROT, CUCUMBER, OLIVE)
'\r'
#originalaswell // modified as well as it was not a deep copy
//array(RADISH, CARROT, CUCUMBER, OLIVE)
'\r'
#copy // unmodified as it used ascopydeep
//array(RADISH, CARROT, CUCUMBER, OLIVE)