title: String splitting in the D language
body: <p>I am learning D and trying to split strings:</p>
  
  <pre><code>   import std.stdio;
     import std.string;
  
      auto file = File(path, "r"); 
      foreach (line; file.byLine) {
             string[] parts = split(line);
  </code></pre>
  
  <p>This fails to compile with:</p>
  
  <pre><code>Error: cannot implicitly convert expression (split(line)) of type char[][] to string[]
  </code></pre>
  
  <p>This works:</p>
  
  <pre><code>    auto file = File(path, "r"); 
      foreach (line; file.byLine) {
             char[][] parts = split(line);
  </code></pre>
  
  <p>But why do I have to use a <code>char[][]</code>? As far as I understand the documentation, it says that <code>split</code> returns a <code>string[]</code>, which I would prefer.</p>