Difference between revisions of "LSL Variables/pl"

From Second Life Wiki
Jump to navigation Jump to search
(New page: {{Multi-lang}} {{LSL Header/pl}} '''Zmienna''' jest miejscem do przechowywania informacji, np. liczb lub ciągów znakowych. Zmienna ma nazwę, typ i wartość. Nazwa zmiennej zawsze za...)
 
 
Line 19: Line 19:


== Zasięg zmiennych ==
== Zasięg zmiennych ==
The variable name is in scope from the point it first appears to the end of the scope it is in, or the end of the script for global variables. A name may not be defined twice in the same scope, but a name may be redefined in an inner scope, and it hides the same name at outer scope. Again, the semantics are very similar to C and Java. That is to say, the following code will compile and run.
Nazwa zmiennej obowiązuje od miejsca pierwszego pojawienia się, do końca bloku w którym się pojawia, lub do końca skryptu w przypadku zmiennej globalnej. Taka sama nazwa nie może być zdefiniowana dwukrotnie w obrębie tego samego bloku, ale może być przedefiniowana w pod-bloku i przykrywa zmienną z bloku wyżej w hierarchii. Znowu - jest to bardzo podobne do semantyki C i Javy. Mając to na uwadze, poniższy kod daje się skompilować i wykonać.
 
<pre>
<pre>
integer i = 50;
integer i = 50;
default {
default {
     state_entry() {
     state_entry() {
           string i = "Hello there!"; //This WILL compile just fine, unlike in Java.
           string i = "Witam!"; //To DA się skompilować, nie tak jak w Javie.
           llOwnerSay(i); //Will say "Hello there!". There is no way to get the global variable i.
           llOwnerSay(i); //Wypisze "Witam!". Nie można odczytać globalnej zmiennej i.
     }
     }
}
}
Line 37: Line 36:
* [[float/pl]]
* [[float/pl]]
* [[list/pl]]
* [[list/pl]]
* [[vector]]
* [[vector/pl]]
* [[rotation]]
* [[rotation/pl]]

Latest revision as of 03:37, 25 March 2008

Zmienna jest miejscem do przechowywania informacji, np. liczb lub ciągów znakowych.

Zmienna ma nazwę, typ i wartość. Nazwa zmiennej zawsze zaczyna się od litery. Zaleca się stosowanie konwencji nazewniczej z C lub Javy. Wielkość liter ma znaczenie. X nie jest tożsame z x.

LSL jest językiem o sztywnych i statycznie deklarowanych typach zmiennych. To oznacza, że zmienna musi mieć zadeklarowany typ i może przechowywać tylko wartości swojego typu. Wyjątkiem jest zmienna typu list, która może przechowywać zero lub więcej wartości dowolnego innego typu.

Przykłady:

integer count = 2;
float measure = 1.2;
string chars = "Lee";
list words = ["To", "Jest", "Lista", "."];
list entries = ["Lista może zawierać dane różnych typów, np.:", 2, 1.2, <0.4, 0.8, 1.6>];
vector vec = <1,6,2>;

Zasięg zmiennych

Nazwa zmiennej obowiązuje od miejsca pierwszego pojawienia się, do końca bloku w którym się pojawia, lub do końca skryptu w przypadku zmiennej globalnej. Taka sama nazwa nie może być zdefiniowana dwukrotnie w obrębie tego samego bloku, ale może być przedefiniowana w pod-bloku i przykrywa zmienną z bloku wyżej w hierarchii. Znowu - jest to bardzo podobne do semantyki C i Javy. Mając to na uwadze, poniższy kod daje się skompilować i wykonać.

integer i = 50;
default {
     state_entry() {
          string i = "Witam!"; //To DA się skompilować, nie tak jak w Javie.
          llOwnerSay(i); //Wypisze "Witam!". Nie można odczytać globalnej zmiennej i.
     }
}

See Also