Skip to content

Instantly share code, notes, and snippets.

@ruslanguns
Last active January 24, 2020 00:14
Show Gist options
  • Save ruslanguns/9fe9bea41a7943fac39e5df17bbbbc81 to your computer and use it in GitHub Desktop.
Save ruslanguns/9fe9bea41a7943fac39e5df17bbbbc81 to your computer and use it in GitHub Desktop.
Dart Language Intro
void main() {
final perro = Perro();
perro.emitirSonido();
final gato = Gato();
gato.emitirSonido();
}
abstract class Animal {
int patas;
void emitirSonido();
}
class Perro implements Animal {
int patas;
int colas;
void emitirSonido() => print('Guau!');
}
class Gato implements Animal {
int patas;
void emitirSonido() => print('Miau!');
}
// OUTPUT =>
/**
Guau!
Miau!
*/
void main() async {
print('Estamos a punto de pedir datos');
String data = await httpGet('https://api/productos');
print( data );
print('Última línea');
}
Future<String> httpGet(String url) {
return Future.delayed( new Duration( seconds: 4 ), () {
return 'Hola mundo';
});
}
// OUTPUT =>
/**
Estamos a punto de pedir datos
Hola mundo
Última línea
*/
void main() {
/**
* Booleans
*/
bool activado = true;
bool desactivado = !activado;
print(activado);
if (!desactivado) {
print('El motor está activado');
} else {
print('Está apagado');
}
}
// OUTPUT =>
/**
true
El motor está activado
*/
void main() {
final wolverine = new Heroe(nombre: 'Logan', poder: 'Regeneración'); // Se puede instanciar con Heroe()
print( wolverine );
print( wolverine.nombre );
print( wolverine.poder );
}
class Heroe {
String nombre;
String poder;
// Heroe({ String nombre, String poder}){
// this.nombre = nombre;
// this.poder = poder;
// }
Heroe({ this.nombre, this.poder });
// String toString() {
// return 'Nombre: ${ this.nombre } - Poder ${ this.poder }';
// }
String toString() => 'Nombre $nombre - Poder $poder';
}
// OUTPUT =>
/**
Nombre Logan - Poder Regeneración
Logan
Regeneración
*/
import 'dart:convert';
void main() {
// final wolverine = new Heroe('Logan', 'Regeneración');
final rawJson = '{ "nombre": "Logan", "poder": "Regeneración" }';
final parsedJson = json.decode( rawJson );
// print(parsedJson); // Map
final wolverine = new Heroe.fromJson(parsedJson);
print(wolverine.nombre);
print(wolverine.poder);
}
class Heroe {
String nombre;
String poder;
Heroe(this.nombre, this.poder);
Heroe.fromJson( Map parsedJson ) {
nombre = parsedJson['nombre'];
poder = parsedJson['poder'];
}
}
// OUTPUT =>
/**
Logan
Regeneración
*/
void main() {
final superman = Heroe();
superman.nombre = 'Clark Kent';
final luthor = Villano();
luthor.nombre = 'Lex Luthor';
print('${ superman.nombre }, ${ luthor.nombre }');
}
abstract class Personaje {
String poder;
String nombre;
}
class Heroe extends Personaje {
String valentia;
}
class Villano extends Personaje {
int maldad;
}
// OUTPUT =>
/**
Clark Kent, Lex Luthor
*/
void main() {
String mensaje = saludar(texto: 'Hola', nombre: 'Ruslan');
String mensaje2 = saludar2(texto: 'Hola 2', nombre: 'Ruslan');
print(mensaje);
print(mensaje2);
}
String saludar({ String texto, String nombre }) {
// print('Hola');
return '$texto $nombre';
}
String saludar2({ String texto, String nombre }) => '$texto $nombre';
// OUTPUT =>
/**
Hola Ruslan
Hola 2 Ruslan
*/
void main() {
/**
* Listas
*/
List<int> numeros = [1,2,3,4,5,];
print( numeros );
numeros.add(6);
print( numeros );
// numeros.add('Hola munto'); // Solo tipo int
// print( numeros );
// OUTPUT: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
// Tamaño fijo
List masNumeros = List(10);
print(masNumeros);
// masNumeros.add(1);
//OUTPUT Error: Error: Unsupported operation: add
masNumeros[0] = 1;
print(masNumeros);
}
// OUTPUT =>
/**
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6]
[null, null, null, null, null, null, null, null, null, null]
[1, null, null, null, null, null, null, null, null, null]
*/
void main() {
String propiedad = 'soltero';
Map<String, dynamic> persona = {
'nombre': 'Carlos',
'edad': 32,
'soltero': true
};
print(persona['nombre']);
print(persona['edad']);
print(persona[propiedad]);
Map<int, String> personas = {
1: 'Tony',
2: 'Peter',
4: 'Strange',
};
personas.addAll({3: 'Banner'});
print(personas);
print(personas[2]);
}
// OUTPUT =>
/**
Carlos
32
true
{1: Tony, 2: Peter, 4: Strange, 3: Banner}
Peter
*/
void main() {
final pato = new Pato();
pato.volar();
new Murcielago().caminar();
}
abstract class Animal { }
abstract class Mamifero extends Animal { }
abstract class Ave extends Animal { }
abstract class Pez extends Animal { }
abstract class Volador {
void volar() => print('Estoy volando');
}
abstract class Caminante {
void caminar() => print('Estoy caminando');
}
abstract class Nadador {
void nadar() => print('Estoy nadando');
}
class Delfin extends Mamifero with Nadador { }
class Murcielago extends Mamifero with Caminante, Volador { }
class Gato extends Mamifero with Caminante { }
class Paloma extends Ave with Caminante, Volador { }
class Pato extends Ave with Caminante, Volador, Nadador { }
class Tiburon extends Pez with Nadador { }
class PezVolador extends Pez with Nadador, Volador { }
// OUTPUT =>
/**
Estoy volando
Estoy caminando
*/
void main() {
final cuadrado = Cuadrado();
cuadrado.lado = 10;
print(cuadrado);
print( 'Área: ${cuadrado.area}');
}
class Cuadrado {
double _lado;
// double _area; // Se esta declarando con el getter
set lado( double valor ) {
if ( valor <= 0 ) {
throw('El valor no puede ser menor o igual a cero');
}
_lado = valor;
}
toString() => 'Lado $_lado';
double get area => _lado * _lado;
}
// OUTPUT =>
/**
Lado 10
Área: 100
*/
void main() {
/**
* print('Hola munto');
*/
String nombre = 'Ruslan';
print('Hola $nombre');
// Números
int empleados = 10; // Solo números enteros
double pi = 3.1416; // Permite números con decimales
double numero = 1.0; // Si es double, poner al menos 1.0
print( '$empleados - $pi - $numero');
// String
String name = 'Tony';
print(name);
print(name[0]); // Traer la primera letra del string
print(name[name.length -1]); // Traer la última letra
}
// OUTPUT =>
/**
Hola Ruslan
10 - 3.1416 - 1
Tony
T
y
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment