probably a trivial question...

Ali Çehreli acehreli at yahoo.com
Fri Oct 14 00:32:14 UTC 2022


Changing the order of lines...

On 10/13/22 16:43, WhatMeWorry wrote:

 > return s.split(';');  // single quotes

That one is a single character and very lightweigth because it's just an 
integral value. You can't put more than one character within single quotes:

  ';x' // ERROR

 > return s.split(";");  // double quotes

That one is a string, which is the equivalent of the following "fat 
pointer":

struct Array_ {
   size_t length;
   char * ptr;
}

For that reason, it can be seen as a little bit more costly. 'length' 
happens to be 1 but you can use multiple characters in a string:

   ";x" // works

(Aside: There is also a '\0' character sitting next to the ';' in memory 
so that the literal can be passed to C functions as-is.)

Double-quoted strings have the property of escaping. For example, "\n" 
is not 2 characters but is "the newline character".

 > return s.split(`;`);  // back ticks

They are strings as well but they don't do escaping: `\n` happens to be 
2 characters.

There is also strings that start with q{ and end with }:

   auto myString = q{
       hello
       world
   };

And then there is delimited strings that use any delimiter you choose:

     auto myString = q"MY_DELIMITER
hello
world
MY_DELIMITER";

Some information here:

   http://ddili.org/ders/d.en/literals.html#ix_literals.string%20literal

Ali




More information about the Digitalmars-d-learn mailing list