Přeskočit obsah

Řetězce¤

Řetězce v SP-Langu používají kódování UTF-8. Reprezentace typu řetězce je str.

Reprezentace řetězce¤

Řetězec je reprezentován P-Stringem příslušným záznamem s následujícími položkami:

  • Délka řetězce v bajtech jako 64bitové číslo bez znaménka.
  • Pointer na začátek řetězcových dat.

Řetězec je také pole bajtů

Hodnota str je binárně kompatibilní s [ui8], seznamem ui8.

Kompatibilita s řetězci ukončenými nulou¤

Hodnota str NESMÍ končit znakem \0 (NULL).

Dodatečné \0 může být umístěno hned za údaji řetězce, ale nesmí být zahrnuto do délky řetězce. Zajišťuje přímou kompatibilitu se systémy NULL-terminated string. Není však implicitně zaručena pomocí str.

NULL ukončený řetězec lze "převést" na str vytvořením nového str pomocí strlen() a skutečného ukazatele na data řetězce. Alternativně lze vytvořit i úplnou kopii.

Data řetězce¤

Data řetězce je paměťový prostor, který obsahuje skutečnou hodnotu řetězce.

Řetězcová data mohou být:

  • umístit hned za strukturu str
  • zcela samostatný řetězcový buffer ("string view")

Řetězcová data mohou být sdílena s mnoha strukturami str, včetně odkazů na části řetězcových dat (tzv. podřetězce).