Local variables for namespaces
-
As I was just testing something with local variables inside inline functions it occurred to me that we don't have the equivalent for namespaces and have to rely on
var
orreg
.var
is no good because of the scope:namespace MyNamespace { var aVariable = 10; } Console.print(aVariable); // 10
And
reg
isn't ideal because of the limit of 32 and the performance decrease as you use more of them.@Christoph-Hart Could we get local variables for namespaces?
-
@d-healey wiered - I'm using locals all over my namespaces:
inline function writeExpansion(expansionName) { // NEW STYLE local mySaveData; local myDataName; for (e in expSet) { if (e.EName == expansionName) { myDataName = e.EName.replace(" ", ""); Engine.dumpAsJSON(e, "../" + myDataName + "_MetaData.json"); Console.print("writing:" + "../" + myDataName + "_MetaData.json"); } } }
-
That's inside an inline function
-
@d-healey That's strange because
const var
is scoped to the namespace, but notvar
... -
@ustk
const
is a different beast, because they can't be changed the precompiler can just replace them with fixed values, and scope isn't an issue. I've stopped usingconst var
now and always just useconst
instead, since Christoph said they are both the same. -
@d-healey That is 4 characters saved, seeing how fast I type I should definitely switch to this advanced coding technique
-
@d-healey said in Local variables for namespaces:
That's inside an inline function
true - got me there officer, I will come quietly...
-
Could we get local variables for namespaces?
I would say that if you exceed 32 variables in a single namespace it might be better to break down the code into multiple modules for clarity anyway. Also I'd like to keep
local
variables inside inline functions to not confuse people more.