Why people dislike global variables so much while I find them so convenient?
Steven Schveighoffer
schveiguy at gmail.com
Wed Jan 26 16:04:36 UTC 2022
On 1/26/22 4:10 AM, rempas wrote:
>> In some cases, they make sense, and in those cases, I'd recommend at
>> least guarding the direct access to the variable through properties so
>> you can control how it's used.
>
> What do you mean "properties"? I suppose not struct/class properties right?
A property is a functional setter/getter (or only one of those) that
prevents incorrect usage.
For example, if you have a global int, and it really should only be in
the range of 1 to 1000, you can guard the setting of the int to make
sure that value was correct.
Or if you have a class reference stored globally, you may want to
prevent someone from reassigning the class reference to another object.
Then you can restrict access to getting only, and not allow setting.
You can implement a property in D at global level, e.g.:
```d
private Resource _resource;
public Resource resource() { return _resource; } // only can access via
this property
```
-Steve
More information about the Digitalmars-d
mailing list