[Article Contest, first draft] D Slices
Jonathan M Davis
jmdavisProg at gmx.com
Wed May 18 21:27:51 PDT 2011
On 2011-05-18 21:09, Jesse Phillips wrote:
> Jonathan M Davis Wrote:
> > The huge advantage of assert over writeln is that it shows you what the
> > result is supposed to be. If you're reading the code or documentation,
> > that's extremely valuable, whereas writeln is useless. However, if what
> > you're concerned about is running the code and see the result, writeln
> > is far more useful. Since you're writing an article, I would definitely
> > go with assert, but it really depends on what you're trying to do.
> > assert works far better as documentation because you can see the result
> > as you read, but writeln when running code because when you do, you can
> > see the result.
> >
> > - Jonathan M Davis
>
> I agree, but he is conflicted on whether the assert should pass or fail. By
> your logic though it sound like you want it also passing. There isn't much
> difference between these:
>
> assert(arr.length == 2); // error!
>
> wirteln(arr.length); // 5
Yes. Such assertions should always be passing. If he has a good reason for not
just doing
assert(arr.length != 2);
then what the best choice is depends on what he's really doing. I haven't
gotten the chance to read the article yet though, so I don't know exactly what
he's trying to do. In the general case, however, I think that for
documentation and articles, the best choice is to use assertions which pass -
particularly those which use == - because then it's clear what's actually
happening without having to run the code.
- Jonathan M Davis
More information about the Digitalmars-d
mailing list