String/pl

From Second Life Wiki
Jump to navigation Jump to search

Typ string to dane tekstowe. Długość łańcucha tekstowego jest ograniczona tylko dostępną dla skryptu pamięcią. Łańcuch znaków jest ograniczony cudzysłowem (") podczas definiowania. Można używać dowolnych znaków, chociaż niektóre wymagają użycia sekwencji specjalnych (tzw. "escaped characters")

Łancuchy mogą być łączone (konkatenowane) przy użyciu operatora +.

Sekwencje specjalne
ciąg zamieniany na
\t cztery spacje
\n nowa linia
\" cudzysłów "
\\ odwrotny ukośnik \

Przykłady łańcuchów znakowych: <lsl>"Cześć Awatarze!" "Tak" "Nie" "Jest godzina 10." "Mam 21 lat!" "Pomóż " + "mi" EOF //Następujące łańcuchy mają tę samą zawartość. "I scream,\nyou scream,\nwe all scream,\nfor ice-cream!" "I scream, you scream, we all scream, for ice-cream!" </lsl>

Uwaga: Sekwencje specjalne (powyżej) są tłumaczone (parsowane) podczas kompilacji skryptu, a nie podczas jego wykonywania. Wskutek tego tylko teksty które są w skrypcie w momencie kompilacji będą miały (np.) \n zamienione na znak nowej linii. Teksty czytane z notecard'ów, czatu http, itd. Nie są sprawdzane pod kątem sekwencji specjalnych, to samo \n czytane z notecard'a nie zostanie w żadnym przypadku automatycznie zamienione w znak nowej linii. Jeżeli potrzebujesz tego z jakiegoś powodu, musisz sam oprogramować tę funkcję.

Uwaga: Osoby, które posiadają znajomość języków typu C lub Java mogą źle interpretować reguły sekwencji specjalnych w LSL'u. LSL'owe "\n" oznacza llUnescapeURL("%0A"), tak jak w C lub Javie, ale już "\t" oznacza llUnescapeURL("%20%20%20%20"), a nie llUnescapeURL("%09"), a "\r" oznacza "r" a nie llUnescapeURL("%0D") itd.


Zmienna: string nazwa;

<lsl>string nazwa;</lsl> Deklaruje zmienną typu string nazwaną nzwa o wartości ""

• zmienna nazwa nazwa zmiennej

Zmienna: string nazwa = wartość;

<lsl>string nazwa = wartość;</lsl> Deklaruje zmienną typu string o nazwie "nazwa" i wartości "wartość".

• zmienna nazwa nazwa zmiennej
• wyrażenie wartość wyrażenie łańcuchowe lub stała

Rzutowanie(Konwersja typu): (string)wartość

<lsl>(string)wartość</lsl> Zamienia wartość na wyrażenie typu string.

• wyrażenie wartość wyrażenie lub stała

Operatory

Zobacz też Operatory.

Łączenie: wartość1 + wartość2

<lsl>(wartość1 + wartość2)</lsl> Łączy dwa łańcuchy bez modyfikowania łańcuchów wejściowych. Dopisuje wartość2 do wartość1 i zwraca łańcuch wynikowy.

• wyrażenie wartość1 wyrażenie łańcuchowe lub stała
• wyrażenie wartość2 wyrażenie łańcuchowe lub stała

Porównanie: wartość1 == wartość2

<lsl>(wartość1 == wartość2)</lsl> Porównuje dwa łańcuchy, zwraca one, jeżeli są tej samej długości i zawierają te same znaki, w przeciwnym przypadku zwraca zero. Ten operator działa dokładnie jak !strcmp(wartość1, wartość2) w C, więc różni się zachowaniem od nieintuicyjnego operatora == w C i Javie.

• wyrażenie wartość1 wyrażenie łańcuchowe lub stała
• wyrażenie wartość2 wyrażenie łańcuchowe lub stała

Porównanie: wartość1 != wartość2

<lsl>(wartość1 != wartość2)</lsl> Porównuje dwa łańcuchy, zwraca zero jeżeli są tej samej długości i zawierają te same znaki, w przeciwnym przypadku zwraca wartość różną od zera. Ten operator działa dokładnie jak strcmp(wartość1, wartość2) w C, więc różni się zachowaniem od nieintuicyjnego operatora == w C i Javie.

• wyrażenie wartość1 wyrażenie łańcuchowe lub stała
• wyrażenie wartość2 wyrażenie łańcuchowe lub stała

Przykład

<lsl>integer int = 48934; string str = (string)int; string str_2; str_2 = str;</lsl>

Użyteczne funkcje

Funkcje operujące na łańcuchach w Bibiliotece funkcji

•  str_replace zamienia wszystkie wystąpienia pierwszego łańcucha drugim w łańcuchu docelowym.
•  TrimRight Usuwa białe znaki z prawej strony łańcucha
•  TrimLeft Usuwa białe znaki z lewej strony łańcucha
•  TrimBoth Usuwa białe znaki z obydwu końców łańcucha

Przykłady

•  SplitLine Wstawia sekwencje specjalne 'nowa linia' w określonych miejscach łańcucha