compileFinal: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Some wiki formatting)
(Add v2.14's alternative syntax)
Line 14: Line 14:
|s1= [[compileFinal]] expression
|s1= [[compileFinal]] expression


|p1= expression: [[String]] or {{GVI|arma3|2.14|size= 0.75}} [[Code]]
|p1= expression: [[String]], {{GVI|arma3|2.14|size= 0.75}} [[Code]] or {{GVI|arma3|2.14|size= 0.75}} [[HashMap]]


|r1= [[Code]]
|r1= [[Code]]
Line 22: Line 22:
call MyCode;
call MyCode;
   
   
// Repeated compile won't have any effect
// repeated compile won't have any effect
MyCode = compileFinal "a = a + 2";
MyCode = compileFinal "a = a + 2";


// Duplicate code will be final as well
// duplicate code will be final as well
MyDuplicateCode = MyCode;
MyDuplicateCode = MyCode;
</sqf>
</sqf>
Line 34: Line 34:
};
};
</sqf>
</sqf>
|x3= <sqf>private _readonlyHashMap = compileFinal _myHashMap;</sqf>


|seealso= [[compile]] [[compileScript]] [[isFinal]] [[call]] [[spawn]]
|seealso= [[compile]] [[compileScript]] [[isFinal]] [[call]] [[spawn]]

Revision as of 17:06, 9 April 2023

Hover & click on the images for description

Description

Description:
Compiles an expression and makes it final, preventing it from:
This feature is only available in the retail version of Arma 3.
Groups:
Strings

Syntax

Syntax:
compileFinal expression
Parameters:
expression: String, Arma 3 logo black.png2.14 Code or Arma 3 logo black.png2.14 HashMap
Return Value:
Code

Examples

Example 1:
MyCode = compileFinal "a = a + 1"; call MyCode; // repeated compile won't have any effect MyCode = compileFinal "a = a + 2"; // duplicate code will be final as well MyDuplicateCode = MyCode;
Example 2:
MyCode = compileFinal { systemChat "Hello World!"; };
Example 3:
private _readonlyHashMap = compileFinal _myHashMap;

Additional Information

See also:
compile compileScript isFinal call spawn

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
AgentRev01 - c
Posted on Aug 15, 2013 - 00:35 (UTC)
When broadcasting a compileFinal'ed variable using publicVariable or its variants, the variable also becomes final on the other client(s) and/or the server. Also, compileFinal does not prevent event handlers from being removed or overwritten.
IT07 - c
Posted on May 27, 2017 - 11:58 (UTC)
in Arma 3 v1.70.141838, compileFinal also works for profileNamespace and uiNamespace. But be careful with that.
Dscha - c
Posted on Oct 23, 2020 - 10:39 (UTC)
Change with Arma 3 patch 2.00, compileFinal is now unable to store code type variables in profileNamespace!