stringPierwsze kroki ze sznurkiem


Uwagi

Ta sekcja zawiera przegląd tego, co to jest łańcuch i dlaczego deweloper może chcieć go użyć.

Powinien również wymieniać wszelkie duże tematy w łańcuchu znaków i link do powiązanych tematów. Ponieważ Dokumentacja dla ciągu jest nowa, może być konieczne utworzenie początkowych wersji tych pokrewnych tematów.

Wersje

Wersja Uwaga Data wydania
Ciąg ASCII 7 bitów 1963-06-17
UTF-8 Domyślnie 8 bitów, zmienna długość poprzez parametry zastępcze 1992-09-30
UCS-2 16-bitowy, podobnie jak UTF-16 bez surogatów, używał mojego systemu Microsoft Windows NT 1993-07-23
UTF-16 Domyślnie 16 bitów, zmienna długość poprzez parametry zastępcze 1996-07-31

Smyczki

Ciąg jest sekwencją literałów znakowych. Do tej pory ciągi są obsługiwane przez wszystkie współczesne języki programowania 1, ale projektanci języków nie są zgodni co do sposobu klasyfikacji ciągów. Jeśli chodzi o projektowanie języka programowania, należy wziąć pod uwagę dwie podstawowe kwestie.

  1. Czy łańcuch powinien być traktowany jako wartość pierwotna czy złożona?
  2. Jakie operacje na łańcuchach powinien zapewnić sam język? 2)

Dzięki temu, że łańcuch jest prymitywną wartością, wszystkie operacje łańcuchowe zapewniane przez język są wbudowane; i nie można go zdefiniować w samym języku. Pozwala to na pewne optymalizacje na poziomie kompilatora - szczególnie w odniesieniu do układu pamięci i ponownego wykorzystania ciągów za pomocą tak zwanej puli ciągów. Kompromis polega na tym, że nie można użyć spadku zastępowania dla operacji na łańcuchach, a takie funkcje trzeba by wywoływać przy użyciu normalnych wywołań funkcji, podczas gdy składnia dla operacji wbudowanych jest zwykle wyraźnie inna. Konsekwencją jest to, że jeśli i kiedy zostaną odkryte bardziej skuteczne algorytmy, nie można po prostu zmienić używanej biblioteki łańcuchów. Skonstruowanym przykładem jest wyszukiwanie podciągu jako część podstawowego zestawu funkcji przed opracowaniem algorytmu wyszukiwania ciągów Boyera – Moore'a.

I odwrotnie, poprzez zdefiniowanie łańcucha jako wartości złożonej, takiej jak tablica znaków, wszystkie zwykłe operacje tablicowe automatycznie stosują się do łańcuchów. Powoduje to jednak, że wszystkie ciągi w języku mają stałą długość. 3)

Ostatecznie innym podejściem jest przedstawianie ciągów jako listy znaków, która - podobnie jak w przypadku tablic - umożliwia dziedziczenie wszystkich operacji na liście.

1 Zapisz bardziej ezoteryczne, takie jak Piet
2 języki zwykle oferują porównania ciągów, przede wszystkim równość, łączenie ciągów z innymi ciągami, zastępowanie pojedynczych znaków i podciągów oraz leksykalne sortowanie ciągów. 3 Zwykle