Advanced features / Runtime stack |
When returning a TEXT or BYTE value from a function, the locator is pushed in on the stack. Storage information of the TEXT/BYTE is defined in the locator structure, therefore you can define the storage of the large object variable in a function, initialize the object with a value, and return it.
MAIN DEFINE t TEXT LET t = init_text(t) DISPLAY "t size = ", LENGTH(t) END MAIN FUNCTION init_text(t) DEFINE t TEXT LOCATE t IN MEMORY LET t = "abc" RETURN t END FUNCTION
t size = 3