Notas sobre Dart

Notas


DART

En Dart todo son objetos. Las variables son instancias de objetos

var numero2 = 2;

Late


Se utiliza para declarar una variable no acepta null pero que será declarada después de  su declaración

late int edad;

Nulos


 De forma predeterminada todos los tipos ahora no admiten nulos. Para que se admita se pone ?

String? name;

Se inicializa null de forma predeterminada.

Puntuación


Las sentencias se separan con ; excepto las llaves
Los parámetros de las funciones se separan con "," y si son nombrados se utiliza el parámetro y ": "

infoPersona(
"Carlos", 
24, 
ciudad: "CDMX");

Constantes

const aloja el valor en tiempo de compilación
final en tiempo de ejecución

const NOMBRE = "Pepe";
final EDAD = 24;


Funciones

También son objetos. 

int suma(int a, int b) {
  return a + b;
}

Cuando son de una sola línea se pueden escribir así:
int suma(int a, int b) => a + b;

Funciones anónimas

int operacion(int a, int b, Function func) => func(a, b);

se podría llamar así:

operacion(5, 3, (a, b) => a * b);


Parámetros opcionales posicionados

Se escriben entre corchetes. Solo pueden ser los últimos

void infoPersona(String nombre, int edad, [String ciudad]) {        
    print("Descripcion: $nombre con $edad años de $ciudad");
}


Parámetros opcionales nombrados

Se encierran entre llaves

void infoPersona(String nombre, int edad, {String ciudad}) {   


se llamaría con 

infoPersona("Carlos", 24, ciudad: "CDMX");



Parámetros con valores por defecto

void infoPersona(String nombre, int edad, {String ciudad = "CDMX"})  { 



Clases

Se usa la palabra reservada class seguida de llaves y dentro la definición de miembros y funciones. Por defecto tiene un constructor vacío. :

class Gato {
  var nombre;
  
  bool dormido(bool estado){
    return estado;
  }
  
}

Crear Instancia de una Clase


Podemos utilizar la palabra var o el nombre de la clase seguido del nombre de la instancia, le asignamos la llamada del constructor de la clase Gato con el uso opcional de la palabra new.


  var gato = new Gato();
  gato.nombre = "Esponjita";
  
  gato.dormido(true);

Clase con constructores nombrados


Se utilizan para tener diversos constructores, consiste en escribir el nombre del constructor, punto y un nombre a asignar. 

class Gato{

  var nombre;
  var botas;

  Gato(String nombre){
    this.nombre = nombre;
  }

  Gato.conBotas(String nombre, bool botas){
    this.nombre = nombre;
    this.botas = botas;
  }
}

se puede escribir reducido:


  Gato(this.nombre);
  Gato.conBotas(this.nombre, this.botas);

Miembros privados

Se declaran con un guion bajo antes del nombre

class Gato{
  var nombre;
  var _edad;
}
main(List<String> arguments) {
  var gato = Gato()
  gato._edad = 12; // ERROR
}


Miembros estáticos

Tanto para campos como para métodos. Se declaran con "static"

Las variables y métodos estáticos son parte de la clase en lugar de una instancia específica. 
Si un miembro de datos es estático, se puede acceder a él sin crear un objeto.

La palabra clave estática permite a los miembros de datos conservar valores entre diferentes instancias de una clase.

Getters y Setters


Cuando declaramos miembros de un clase, Dart encapsula cada uno en sus métodos de acceso get y set. Sin embargo podemos personalizarlos.


class Gato{
  var _edad;

  set edad(int edad) {
    this._edad = edad;
  }
  int get edad {
    return _edad + 2;
  }
}

main(List<String> arguments) {
  var gato = Gato()
  gato.edad = 12; // set

  print(gato.edad); // get
}


Herencia

Para heredar de otra clase usamos la palabra extends seguido del nombre de la clase

class Gato extends Animal {
  var nombre;
  
  habla() => print("Mew");
}



Comentarios

Entradas populares de este blog

Solución a XMLHttpRequest Error en Flutter

Instalar y configurar Kodi

VSCode no encuentra mi propio modulo python