conver BigInt to string
    Meta via Digitalmars-d-learn 
    digitalmars-d-learn at puremagic.com
       
    Thu Nov  5 08:45:08 PST 2015
    
    
  
On Thursday, 5 November 2015 at 16:29:30 UTC, Namal wrote:
> Hello I am trying to convert BigInt to string like that while 
> trying to sort it:
>
> string s1 = to!string(a).dup.sort;
>
> and get an error
>
> cannot implicitly convert expression (_adSortChar(dup(to(a)))) 
> of type char[] to string
>
> what do I do wrong?
Try this instead:
string s1 = to!string(a).idup.sort()
I suspect there are two things happening here. First, calling dup 
on a string yields char[], not string (the difference being that 
string is immutable and char[] is not). A char[] cannot 
implicitly convert to string due to the difference in 
immutability, although the compiler *should* realize that the 
result of dup is a "unique" expression and be able to implicitly 
convert it... It may be because you then pass it to sort, which 
must keep it as a char[].
The second issue is that using .sort instead of .sort() (note the 
parentheses) calls the built-in sort instead of 
std.algorithm.sort, which is strongly discouraged. You should 
always use std.algorithm.sort over the built-in sort, which you 
can do just by appending those parentheses.
    
    
More information about the Digitalmars-d-learn
mailing list