Can't add a const ubyte to a dynamic array of ubyte?

ads relay.public.adnan at outlook.com
Tue Aug 20 09:27:36 UTC 2019


import std.stdio;

ubyte[] extend(in uint[] arr)
{
	ubyte[] result;
	foreach (n; arr)
	{
		if (n < 10)
		{
			result ~= n;
                         // source/app.d(10,11): Error: cannot 
append type const(uint) to type ubyte[]
		}
		else
		{
			import std.conv : to;

			foreach (digit; n.to!string)
			{
				result ~= digit.to!ubyte;
			}
		}
	}
	return result;
}

unittest
{
	import std.algorithm : equal;

	assert(extend([1, 25, 70, 0]).equal([1, 2, 5, 7, 0, 0]));
}


How can I get around this? I want to ensure that the array is not 
mutated in the function in the signature too.



More information about the Digitalmars-d-learn mailing list