On Sunday, 25 February 2018 at 06:22:03 UTC, psychoticRabbit wrote:
On Sunday, 25 February 2018 at 05:40:19 UTC, Jonathan M Davis wrote:

    int[] intArr = iota(1, 11).array();


- Jonathan M Davis

thanks!

oh man.  It's so easy to do stuff in D ;-)

But this leads me to a new problem now.

When I run my code below, I get ints printed instead of doubles??

---------------------
module test;

import std.stdio : writeln;
import std.traits : isArray;
import std.array : array;
import std.range : iota;


void main()
{
    int[] intArr = iota(1, 11).array(); // 1..10
    double[] doubleArr = iota(1.0, 11.0).array(); // 1.0..10.0
    char[] charArr = iota('a', '{').array();  // a..z

    printArray(intArr);
printArray(doubleArr); // why is it printing ints instead of doubles??
    printArray(charArr);
}

void printArray(T)(const ref T[] a) if (isArray!(T[]))
{
    foreach(t; a)
        writeln(t);
}

---------------------------------

2 Things:
1. You can just use writeln to directly print Arrays. If you want a specific format for the array you can use writef/writefln 2. By default, writeln will print [1, 2, 3] when your array contains [1.0, 2.0, 3.0], since thats considered neater. You can use writefln to address that. You can see this here: https://run.dlang.io/is/bNxIsH

You can read more about format strings here:
https://dlang.org/phobos/std_format.html#format-string

Reply via email to