YENGconstant
From OpenSimulator
(Difference between revisions)
Line 1: | Line 1: | ||
constant allows to define a constant value that is evaluated and all its occurrences in code are replaced by that value at compile time.<br> | constant allows to define a constant value that is evaluated and all its occurrences in code are replaced by that value at compile time.<br> | ||
− | its type | + | its type will be guessed from the types at right side expression, and can be confusing |
constant endlimit = 0.1 // will be a like float 0.1 | constant endlimit = 0.1 // will be a like float 0.1 | ||
Line 9: | Line 9: | ||
constant badidea = "2" + 3 // will be like string "23" | constant badidea = "2" + 3 // will be like string "23" | ||
− | |||
− | |||
other operations supported | other operations supported | ||
& | ^ ~ for integer types | & | ^ ~ for integer types | ||
Line 19: | Line 17: | ||
constant ar = 2 + 2 & 1; //will be 0, ie will do (2 + 2) & 1 since + and & have same evaluation priority. | constant ar = 2 + 2 & 1; //will be 0, ie will do (2 + 2) & 1 since + and & have same evaluation priority. | ||
− | + | normal use will to define a simple constant at top of program, easy to change later. | |
− | + | ||
constant textureID = "0d3b69fe-1b6e-40f3-8e5f-933814df3b7b"; | constant textureID = "0d3b69fe-1b6e-40f3-8e5f-933814df3b7b"; |
Revision as of 22:37, 19 September 2020
constant allows to define a constant value that is evaluated and all its occurrences in code are replaced by that value at compile time.
its type will be guessed from the types at right side expression, and can be confusing
constant endlimit = 0.1 // will be a like float 0.1 constant start = 1 // will be a like integer 1 constant idea = 2 + 3 // will be like integer 5 constant betteridea = idea + 3 // will be like integer 8 constant otheridea = 2 + 3.0 // will be like float 5.0 constant badidea = "2" + 3 // will be like string "23"
other operations supported
& | ^ ~ for integer types - * / % for integer or float types
on expressions better use () to force and make clear the desired evaluation order
constant ar = 2 + (2 & 1); //will be 2 constant ar = 2 + 2 & 1; //will be 0, ie will do (2 + 2) & 1 since + and & have same evaluation priority.
normal use will to define a simple constant at top of program, easy to change later.
constant textureID = "0d3b69fe-1b6e-40f3-8e5f-933814df3b7b";