On 7/13/18 3:29 PM, vino.B wrote:
On Friday, 13 July 2018 at 19:05:20 UTC, Steven Schveighoffer wrote:
On 7/13/18 2:37 PM, vino.B wrote:
Hi All,
How do i check whether a range is empty. eg.
(!PFResutl.toRange).empty. I tired the below, but it is no printing
Empty if the range is empty it just prints blank line.
if (!(!PFResutl.toRange).empty) { writeln("Empty"); }
Without knowing what PFResutl is, let me simplify a bit:
if( ! (expr).empty) { writeln("Empty"); }
That exclamation point means "not". So you are first checking if the
range is NOT empty, and if so, printing "Empty". Is that what you meant?
Sorry there was a typo mistake, so the PFResult contain the results of
"taskPool.workerLocalStorage" which i print using
writeln(PFResult.toRange) so the requirement is that if the rage is
empty it has to print "Empty" else it should print the result.
Eg:
if (!(PFresult.toRange).empty) {
foreach(i; chain(PFresult.toRange)) { writeln(i[]); }
} else { writeln("Empty"); }
Well, empty is how you detect whether any range is empty, and as far as
ranges are concerned, your code is correctly checking for empty.
A couple comments:
1. Why are you using chain with a single parameter? That just returns
its parameter.
2. You may want to try grabbing the range ONCE. i.e.:
auto r = PFresult.toRange;
if(!r.empty)
{
foreach(i; r) ...
}
I'm not familiar with how taskPool works, so I don't know the real answer.
-Steve