nil: Non ha nessun valore (Nulla)
boolean: 2 Valori (true/False)
number: Un numero qualsiasi
string: Serie di caratteri che vengono racchiusi da (Virgolette o apostrofi) ( " )
( ' )
function: un comando che viene eseguito function hello() print("Hello world") end
userdata: Variabili di C (linguaggio di Programmazione) in lua e rappresenta la
memoria (RAM)
thread: Hanno la capacità di eseguire codice ASINCRONO al file originale
table: Variabili che possoono contenere Dati o Funzioni (Chiamati anche array)
print: Stampare una stringa
-- DEFINIRE UNA VARIABILE --
var <Nome variabile> = <qualunque parola> (var shiba = "leonfi") Usata al di fuori
del programma originale, Variabiile pubblica
local <Nome variabile>_local = <qualunque parola> Con il local rendiamo la
variabile usufruibile solo da questo programma
-- Condizioni --
-- 2.1 Operazioni --
+ = Addizione (2 + 2= 4)
- = Sottrazione (2 - 2= 0)
* = Moltiplicazione (2 * 2= 4)
/ = Divisione (3 / 4 = 0.75) [I decimali si scrivono col punto]
// Divisione arrotondata (3 / 4 = 1)
% = Da il resto della divisione (Modulo) ( 3 / 4 = 0)
^ = Esponente (2 ^ 6 = 64)
-- 2.2 Operatori Bitwise e numeri binari --
4 bit ---> 0000
I bit funzionano ad 2 ^ i Quindi il massimo che possiamo ottenere da un 4 bit è 15
Come contare in binario
0000 -> 0 0100 -> 4 1000 -> 8 1100 -> 12 Quando noi applichiamo 9 + 1, cosa
succede? Diventa 10.
0001 -> 1 0101 -> 5 1001 -> 9 1101 -> 13 Dunque sul binario se si prova a
sommare 1 + 1 = 0 con riporto
0010 -> 2 0110 -> 6 1010 -> 10 1110 -> 14
0011 -> 3 0111 -> 7 1011 -> 11 1111 -> 15 0 0 0 0 0 Corrisponde per quando
dobbiamo fare un calcolo (CALCOLO)*
4 3 2 1 0
-- Addizione con i numeri binari --
0101 +
0110 =
-----
1011 --> 11
-- Conversione da binario a decimale --
(CALCOLO)*
10110 ---> 1 x 2^4 + 1 x 2^2 + 1 x 2^1
Operatori bitwise
0 -> Falso
1 -> Vero
& -> and
| -> or
>> -> Right shift
<< -> Left shift
--and
______ 0 * 1 = 0
i1 --| \ i1 * i2 = out
| | -- output 1 * 1 = 1
i2 --|_____/
--or
______
i1 --\ \ 0 + 1 = 1
| |-- output i1 + i2 = out
i2 --/_____/ 1 + 1 = 0
--Right shift (Spostamento di bit verso destra)
0100101 >> 2 --> 0001001
--Left shift (Spostamento di bit verso sinistra)
0100101 << 2 --> 0010100
-- CAPITOLO 3 --
--Operazioni di Condizione--
== --> Ugualizanza
= --> Diverso
< --> Minore
> --> Maggiore
<= --> Minore o uguale
>= --> Maggiore o Uguale
--Operatori logici--
or
and
10 or 20 ---> 10
nil or "a" ---> "a"
false and nil ---> false
10 and 20 ---> 20
--Condizioni--
if <condizione> then
(se) (allora)
Istruzioni
end
(Fine)
If a == 0 then
print("A equivale a 0")
end
--CAPITOLO 3 CICLI--
--Ciclo while--
while (condizione) do
(codice)
end
int i = true
while i do
print("Hello, world!");
end
--Ciclo for--
(Opzionale)
for (inizializzazione), (massimo/minimo), [incremento] do
(codice)
end
For i = 0, 10 do
print(i)
end
for i = 0, 10, 2 do
print
end
for i = 10, 0, -1 do
print (i)
end
--Ciclo Repeat--
repeat
(codice)
until (condizione)
repeat
print("Hello, world!")
until true
--Capitolo 4 Vettori--
Nomi 3 spazi
0 1 2
_______________________________
| | | |
|"Alberto"|"Giovanni"|"Piero"|
_|_________|__________|_______|_
nomi = {} <--Definizione di tabella--
nomi[0] = "Alberto"
nomi[1] = "Giovanni"
nomi[2] = "Piero"
print("Il primo valore del vettore è " .. nomi[0])
Punteggio
"Bob" "Ale" "Leo"
__________________
| | | |
| 100 | 50 | 340 |
|_____|____|_____|
punteggi = {} <--Definizione di tabella--
punteggi["Bob"] = 100
punteggi["Ale"] = 50
punteggi["Leo"] = 340
print("Il punteggio di Bob è: " .. punteggi["Bob"])
--Capitolo 4.1 Table Functions--
(opzionale)
[Link](table[, sep, i, j])
nomi = {"Alessandro", "Roberto", "Giovanni"}
[Link](nomi) ---> "AlessandroRobertoGiovanni"
[Link](nomi, ",") ---> "Alessandro,Roberto,Giovanni"
[Link](nomi, ", ") ---> "Alessandro, Roberto, Giovanni"
[Link](nomi, ", ", 1, 2) ---> "Roberto, Giovanni"
[Link](table, [pos], valore)
nomi = {"Filippo", "Salvatore", "Rebecca"}
nomi[#nomi] = "Simone"
Per indicare la grandezza di un vettore si usa il #
print("La grandezza del vettore punteggio equivale a " .. #punteggi)
[Link](nomi, "Simone") ---> {"Filippo", "Salvatore", "Rebecca", "Simone"}
[Link](nomi, 1, "Simone") ---> {"Filippo", "Simone", "Salvatore",
"Rebecca"}
(opzionale)
[Link](table, [pos])
nomi = {es. [Link]}
[Link](nomi) --> {"Filippo", "Salvatore"}
[Link](table, 1) --> {"Filippo", "Rebecca"}
[Link](table) --> Equivalente al # SOLAMENTE calcola soltanto gli indici
[Link](table, [cond])
nomi = {es. [Link]}
[Link](nomi) --> {"Filippo", "Rebecca", "Salvatore"}
[Link](nomi, function(a, b) return a > b end)
--AGGIUNTA FOR LOOP E VETTORI--
for index, value in pairs(Vettore) do
print(index .. ": " .. value)
end
pairs(Vettore) -- Prende tutti gli indice del vettore
ipairs(Vettore) -- Prende gli indice solo numerici del vettore
--CAPITOLO 5 FUNZIONI--
--DEFINIZIONE--
function <nome_funzione>([Argomenti])
/* Codice */
end
--CHIAMATA--
<nome_funzione>([Argomenti])
--ESEMPIO--
function somma(add1, add2)
return add1 + add2
end
print(somma(2, 2))
local ver = {
aereo = 10
}
function [Link]()
print([Link])
end
function ver:holy() --> function [Link](self)
print([Link])
end