isFinal: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Some wiki formatting)
(Add v2.14's alternative syntax)
Line 6: Line 6:
|gr1= Variables
|gr1= Variables


|descr= Checks if [[Code|code]] or a variable was compiled final with [[compileFinal]].
|descr= Checks if [[Code]] or a variable was compiled final with [[compileFinal]].


|s1= [[isFinal]] variable
|s1= [[isFinal]] variable


|p1= varName: [[String]] - A [[String]] pointing to a variable
|p1= varName: [[Code]], [[String]], {{GVI|arma3|2.14|size= 0.75}} [[Array]] or {{GVI|arma3|2.14|size= 0.75}} [[HashMap]]
* [[Code]]
* [[String]] - the name of the variable holding [[Code]]
* {{GVI|arma3|2.14|size= 0.75}} [[Array]] - an array that is a [[HashMapKey]], a trigger's <sqf inline>thisList</sqf> array, etc.
* {{GVI|arma3|2.14|size= 0.75}} [[HashMap]] - a hashmap created with [[createHashMapObject]] or made final with [[compileFinal]]


|r1= [[Boolean]] - [[true]] if final, [[false]] if not
|r1= [[Boolean]] - [[true]] if final, [[false]] if not


|s2= [[isFinal]] code
|x1= <sqf>
private _myCode = compileFinal "a = a + 1";
systemChat format ["isFinal ""_myCode"": %1", isFinal "_myCode"]; // true
systemChat format ["isFinal _myCode: %1", isFinal _myCode]; // true
systemChat format ["isFinal some code: %1", isFinal { hint "Hello there" }]; // false
 
private _myArray1 = list _myTrigger;
systemChat format ["isFinal _myArray1: %1", isFinal _myArray1]; // true


|p21= code: [[Code]] - Some code
private _myArray2 = [1, 2, 3];
systemChat format ["isFinal _myArray2: %1", isFinal _myArray2]; // false


|r2= [[Boolean]] - [[true]] if final, [[false]] if not
private _myHashMap = compileFinal createHashMap;
systemChat format ["isFinal _myHashMap: %1", isFinal _myHashMap]; // true


|x1= <sqf>
private _myHashMapObject = createHashMapObject [];
myCode = compileFinal "a = a + 1";
systemChat format ["isFinal _myHashMapObject: %1", isFinal _myHashMapObject]; // true
if (isFinal "myCode") then { systemChat "Code is compiled final." };
</sqf>
</sqf>


|x2= <sqf>if (isFinal BIS_fnc_arsenal) then {chint "You can't edit this function!" };</sqf>
|x2= Avoid .rpt's overwrite warnings:
 
|x3= Avoid overwrite .rpt warnings:
<sqf>if (!isFinal fnc_myCode) then { fnc_myCode = compileFinal str_myCode };</sqf>
<sqf>if (!isFinal fnc_myCode) then { fnc_myCode = compileFinal str_myCode };</sqf>


|seealso= [[compile]] [[compileFinal]]
|seealso= [[compile]] [[compileFinal]]
}}
}}

Revision as of 17:06, 9 April 2023

Hover & click on the images for description

Description

Description:
Checks if Code or a variable was compiled final with compileFinal.
Groups:
Variables

Syntax

Syntax:
isFinal variable
Parameters:
varName: Code, String, Arma 3 logo black.png2.14 Array or Arma 3 logo black.png2.14 HashMap
Return Value:
Boolean - true if final, false if not

Examples

Example 1:
private _myCode = compileFinal "a = a + 1"; systemChat format ["isFinal ""_myCode"": %1", isFinal "_myCode"]; // true systemChat format ["isFinal _myCode: %1", isFinal _myCode]; // true systemChat format ["isFinal some code: %1", isFinal { hint "Hello there" }]; // false private _myArray1 = list _myTrigger; systemChat format ["isFinal _myArray1: %1", isFinal _myArray1]; // true private _myArray2 = [1, 2, 3]; systemChat format ["isFinal _myArray2: %1", isFinal _myArray2]; // false private _myHashMap = compileFinal createHashMap; systemChat format ["isFinal _myHashMap: %1", isFinal _myHashMap]; // true private _myHashMapObject = createHashMapObject []; systemChat format ["isFinal _myHashMapObject: %1", isFinal _myHashMapObject]; // true
Example 2:
Avoid .rpt's overwrite warnings:
if (!isFinal fnc_myCode) then { fnc_myCode = compileFinal str_myCode };

Additional Information

See also:
compile compileFinal

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