string Samouczek
Pierwsze kroki ze sznurkiem
Szukaj…
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.
- Czy łańcuch powinien być traktowany jako wartość pierwotna czy złożona?
- 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