Dart – Costrutti base

Il vero e proprio percorso comincia da qui dopo aver visto la potenzialità del framework Flutter.
Comincio con le definizioni classiche.
Ambiente di sviluppo: dartpad.dev

I Esempio – stampa a video “Hello Word”

void main() {
  
    print("Hello word");

}

Si nota subito che se si sbaglia a digitare il codice subito interviene l’interprete on line, non serve compilare!

Non si deve includere alcuna libreria per scrivere in output.

II esempio – costrutto if then else

void main() {
  int numero = 5;

  if (numero > 0) {
    print("Il numero è positivo");
  } else {
    print("Il numero è zero o negativo");
  }
}

non esiste la parola then come in altri linguaggi

III esempio – costrutto while

void main() {
  int numero = 1;
  while (numero <= 5) {
    print('Numero: $numero');
    numero++;
  }
  print('Fine ciclo');
}

IV esempio costrutto for

void main() {
  // Ciclo for che conta da 1 a 5
  for (int i = 1; <= 5; i++) {
    print('Numero: $i');
  }
}

V esempio gestione vettore e matrici molto simile a Python

void main() {
  // Creazione di un "vettore" (lista) di interi
  List<int> numeri = [10, 20, 30, 40];
  // Aggiungere un elemento
  numeri.add(50);
  // Accedere a un elemento (indice parte da 0)
  print(numeri[0]); // 10
  // Modificare un elemento
  numeri[1] = 25;
  // Ciclo for per stampare tutti gli elementi
  for (int n in numeri) {
    print(n);
  }
  // Lunghezza del vettore
  print("Lunghezza: ${numeri.length}");
}
void main() {
  // Definisco una matrice 3x3
  List<List<int>> matrice = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
  ];
  // Accedere a un elemento: riga 1, colonna 2 (indice da 0)
  print(matrice[1][2]); // 6
  // Modificare un elemento
  matrice[0][0] = 10;
  // Stampare tutta la matrice
  for (var riga in matrice) {
    print(riga);
  }
}

VI esempio casting

Di fatto come in Java ma anche in Python ogni input è considerato string, successivamente con l’operazione di casting si arriva a definire il tipo di dato:

// Definizione della funzione
void saluta(String nome) {
  print('Ciao, $nome!');
}
void main() {
  // Chiamata della funzione
  saluta('Francesco');
}
void main() {
  String numeroStringa = "123";
  int numeroIntero = int.parse(numeroStringa);
  print(numeroIntero); // 123
  print(numeroIntero.runtimeType); // int
}
void main() {
  // Numero decimale (con la virgola)
  double numeroDecimale = 3.14159;
  print('Numero decimale: $numeroDecimale');
  // Numero esponenziale (notazione scientifica)
  double numeroEsponenziale = 1.23e4;  // equivalente a 1.23 * 10^4 = 12300
  print('Numero esponenziale: $numeroEsponenziale');
  // Altro esempio di $esponenziale negativo
  double piccoloNumero = 5.67e-3;  // 5.67 * 10^-3 = 0.00567
  print('Piccolo numero: piccoloNumero');
}

Come ultimo passo si noti il concetto di funzione.

// Definizione della funzione
void saluta(String nome) {
  print('Ciao, $nome!');
}
void main() {
  // Chiamata della funzione
  saluta('Francesco');
}

Per chi è abituato a programmi compilati si nota che la definizione di funzione si ha prima del main() se si usa la piattaforma on line.

Ecco un altro esempio di funzione da cui poi definisco i vari tipi di funzione:

int somma(int a,int b)    {
  int c;
  c= a + b;
  return (c);
}
void main() {
  int x = 3;
  int y = 4;
  int z = somma(x,y);
  print("La somma risulta $z");
}

si possono definire anche le funzioni dopo il main() quando si usa dart all’interno del Visual Studio Code esattamente come le funzioni prototipo in C++.

L’uso di $z solo quando vi è una stringa al cui si mette la variabile con il numero.

I tipi di dato in dart sono i seguenti:

int, double, num che contiene dia gli int che i double, string e bool

Tipi complessi:

list, set, map.

Esempi di variabile globale:

// Variabile globale
int counter = 0;

void increment() {
  counter++;
}

void main() {
  print(counter); // 0
  increment();
  print(counter); // 1
}
Questa voce è stata pubblicata in Senza categoria. Contrassegna il permalink.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *