Treść książki
Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Anatomiaprogramu
29
tojednakzewzględunatematykętejksiążkipominiemyichszczegółoweomówienie.
TrybinteraktywnyLua5.3
>print(type(print))
function
>print(type(io))
table
>print(type(io0stdin))
userdata
WkażdymzpowyższychprzykładówodwołujemysiędowbudowanychwLuawar-
tościpowiązanychzokreślonyminazwami.Więcejonazwachzwiązanychzdanymi
WjęzykuLuawszystkiewartości,niezależnieodtypu,sąpierwszoklasowe.Ozna-
czato,żemogąonebyćprzypisywanedozmiennych,przekazywanedofunkcjijako
argumentyorazzwracaneprzeztefunkcje.Jaksięwkrótceokaże,niesietozasobą
szeregmożliwości.
2.2.2.Wyrażenia
Zwartościmożemybudowaćwyrażenia.Przykłademwyrażeniajestoczywiście
pojedynczawartość(np.
2
).Tewykorzystywanewpraktycesąjednakczęstobardziej
rozbudowane.Przykładowo,
2+3
jestjużwyrażeniemzbudowanymzdwóchwarto-
ścitypu
number
orazsymboluoperatoradodawania‘
+
’
.Naszmózgautomatycznie
utożsamiatowyrażeniezwartością5,reprezentującąsumęliczb2i3.Podobnie
jestwjęzykuLua-każdezrozumiałedlainterpreterawyrażeniejestprzekształcane
automatyczniedopostacipojedynczejwartościlubciągukilkuwartości,którychnie
możnajużdalejwżadensposóbprzekształcić.Ztegopowodumożemypowiedzieć
naprzykład,żewyrażenie
2+3
przyjmujelubmawartość
5
.Zkolejnychrozdziałów
dowieszsię,jaktworzyćwyrażeniaopartenaposzczególnychtypachwartości.
Większośćwyrażeńniejestinstrukcjamijęzyka,ponieważniemasamodziel-
negowpływunastanprogramu.ObliczenieprzezLuawartościwyrażenia
2+3
tobowiemzamało,abymożnabyłopowiedzieć,żeprogramcośzrobił.Konkretne
wartościnabierająsensudopierowtedy,gdysąumieszczonewszerszymkontekście
(np.sąprzekazywanedofunkcjijakoargumenty).Niemniejjednak,wprowadzanie
6
sięonenastandardowychrozwiązaniachdostarczanychprzezjęzykansic,przezcowymuszająwyko-
rzystaniewartościtypu
userdata
.Będziemygojednaktraktowaćjakczarnąskrzynkę,nieanalizując
szczegółowocechtegotypu.