Pravdivostní hodnoty a typy
Kromě čísel a textů má Lua ještě jeden jednoduchý druh hodnot: pravdivostní hodnotu (anglicky boolean, podle matematika George Boolea). Ta má jen dvě možné hodnoty, true (pravda) a false (nepravda). Je to odpověď na otázku ano, nebo ne: Prší? Je stodola otevřená?
local prsi = false
local stodolaOtevrena = true
print(prsi)
print("Stodola otevřená:", stodolaOtevrena)Vypíše:
false
Stodola otevřená: trueV příští lekci budou pravdivostní hodnoty rozhodovat, co program udělá, třeba jestli Ema bude zalévat pole. Zatím si dejte pozor na tři věci:
trueafalsejsou klíčová slova, a proto se píšou bez uvozovek."true"v uvozovkách je text, který jen vypadá jako pravdivostní hodnota.- Píšou se malými písmeny.
Trues velkým písmenem je jen název, a protože žádná proměnnáTrueneexistuje, je jeho hodnotanil. - Stejně jako
nilnejde pravdivostní hodnota připojit k textu pomocí..:"Prší: " .. prsiskončí chybouattempt to concatenate a boolean value (local 'prsi'). Vypište ji s čárkou, nebo ji nejdřív převeďte na text, jak se naučíte v příštím cvičení.
Každá hodnota má svůj typ: číslo, text, pravdivostní hodnota… Funkce type vám řekne který, a to jako text:
print(type(120))
print(type(2.5))
print(type("Ema"))
print(type(true))
print(type(nil))Vypíše:
number
number
string
boolean
niltype vrátí number pro celá i desetinná čísla stejně; od sebe je rozlišíte pomocí math.type. Později v kurzu poznáte další typy, například table (tabulka) a function (funkce; zkuste print(type(print))).
V Lua patří typ hodnotě, ne proměnné. Stejná proměnná může teď obsahovat číslo a později text:
local uroda = 12
print(type(uroda))
uroda = "dvanáct"
print(type(uroda))Vypíše:
number
stringLua to dovolí, ale každého, kdo bude program číst, to zmate. Do každé proměnné ukládejte jen jeden druh hodnot.
Jak psát:
Pokyny
Pod to vypište proměnnou mleko a její typ stejně jako na dvou řádcích nad tím:
Ema string
1 number
6.5 numberStejně vypište stodolaOtevrena a její typ. Objeví se string: hodnota je v uvozovkách, takže je to text. Opravte řádek 5 tak, aby stodolaOtevrena byla pravdivostní hodnota a program vypsal:
Ema string
1 number
6.5 number
false booleankravy i mleko jsou čísla. Na poslední řádek vypište, jakého druhu je každé z nich: math.type(kravy) a math.type(mleko), oddělené čárkou:
Ema string
1 number
6.5 number
false boolean
integer floatZačněte programovat zdarma
7/10