What's missing to make D2 feature complete?
via Digitalmars-d
digitalmars-d at puremagic.com
Wed Dec 24 01:18:41 PST 2014
On Wednesday, 24 December 2014 at 09:02:56 UTC, Kagamin wrote:
> On Wednesday, 24 December 2014 at 08:39:26 UTC, Ola Fosheim
> Grøstad wrote:
>> int myfunc(int n){
>> ...lotsofstuff...
>> x = mayormaynotchange(n);
>> ...lotsofstuff...
>> return n>0 ? x : 0; // modified from "return x"
>> }
>
> If you require another variable for a sanitized version of `n`,
> you get confused, when to use `n` and when to use `x`, they are
> almost the same and if you pick a wrong value, the code will
> break sometimes.
Not really, because you should strive to keep mutable state
local. Validation does not belong to the implementation, so "the
right way" is to put it in a wrapper before you call the function
that does the actual work.
When functions get long and complicated and evolve over time then
all mutable state become a source for errors.
I never want to change parameter values for long functions. I do
it for because I am in a hurry. The more constraint the language
impose the better code I am likely to write.
More information about the Digitalmars-d
mailing list