SlideShare una empresa de Scribd logo
1 de 7
Descargar para leer sin conexión
97
Capítulo 4
Dart, los fundamentos
Dart, los fundamentos
1. Introducción
Dart es un lenguaje moderno, orientado a objetos, que apareció en 2010 por
iniciativa de dos desarrolladores de Google: Lars Bak y Kasper Lund.
Originalmente, este proyecto tenía como objetivo reemplazar JavaScript a
medio o largo plazo debido a las dificultades para hacer evolucionar este últi-
mo. Por lo tanto, Google diseñó Dart a partir de esta idea y la versión 1.0 se
lanzó el 10 de octubre de 2011.
El lenguaje incluso fue adoptado por ECMA International en 2014. Como
recordatorio, se trata de una organización europea de estandarización en
informática. Entre sus responsabilidades, se halla la de adoptar estándares, en
particular para los lenguajes de programación (incluidos los de scripts).
A pesar de los mejores esfuerzos de Google, Dart nunca se abrió paso y
JavaScript permaneció firmemente establecido en su pedestal. El lenguaje fue
cayendo gradualmente en el olvido, hasta la llegada de Flutter en 2018.
La voluntad de impulsar el SDK a un primer plano llevó a Google, entre otras
cosas, a lanzar una versión de Dart nueva, más simple, rápida e intuitiva a
principios de 2018. La 2.0.
©
Editions
ENI
-
All
rights
reserved
98
Desarrolle sus aplicaciones móviles multiplataforma con Dart
Flutter
Esta última versión es la que vamos a descubrir aquí, ya que, como hemos
explicado en el primer capítulo, Flutter se basa en este lenguaje. Es fundamen-
tal tener lo básico antes de poder disfrutar plenamente de todos los beneficios
que nos brinda Flutter.
Para implementar y probar los ejemplos que siguen, cabe destacar la existencia
de una herramienta de gran utilidad: DartPad.
La puede encontrar en la siguiente dirección: https://dartpad.dartlang.org/
DartPad de Google
99
Dart, los fundamentos
Capítulo 4
2. Sintaxis básica
Primero, vale la pena revisar la sintaxis básica de Dart. Por tanto, descubrire-
mos cómo utilizar variables, constantes, colecciones, las opciones y los bucles.
El objetivo no es ser exhaustivo, sino equiparnos con los elementos esenciales
para el futuro.
2.1 Variables
Dart admite una cierta cantidad de tipos, como números, cadenas, valores
booleanos e incluso colecciones, como listas simples o listas que operan con un
par clave/valor. Discutiremos estos dos últimos conceptos un poco más
adelante en este capítulo.
2.1.1 Los números
Sintaxis básica
En cuanto a los números, podemos observar la posibilidad de utilizar números
enteros (Integer) o números reales (Double).
La escritura se hará de una forma bastante clásica:
int miEntero;
double miReal;
Observación
En este punto, si la variable no se inicializa con un valor elegido, tomará null
como valor predeterminado. Este procesamiento también es válido para
números (enteros o reales), ya que en Dart todo se considera un objeto.
Podemos considerarlo un punto notable, ya que diverge de ciertos lenguajes.
Se usa del siguiente modo:
int miEntero = 2;
double miReal = 1.856;
©
Editions
ENI
-
All
rights
reserved
100
Desarrolle sus aplicaciones móviles multiplataforma con Dart
Flutter
Herencia de la clase num
Los int y los double heredan de la clase num (las nociones de herencia se
desarrollarán con más detalle en el próximo capítulo). Por tanto, es posible
utilizar este último para garantizar que la variable sea un número de tipo int
o double. De lo contrario, se producirá un error de compilación.
num unNumero = 318;
num unNumeroDiferente = 3.265464;
Las operaciones con números
Es posible realizar varias operaciones con los números, como conversiones de
una cadena de caracteres. Para hacer esto, simplemente use la siguiente
sintaxis:
int.tryParse(valorAConvertir) ;
Por ejemplo, para convertir la cadena de caracteres «32» en un número entero
y asignarla inmediatamente a una variable, basta con que escriba esto:
int numeroDesdeCadenaDeCaracteres = int.tryParse("32");
2.1.2 Las cadenas de caracteres
Sintaxis básica
La declaración e inicialización de cadenas es similar a la de números:
String miCadena = ‘Hello World‘;
El valor de la cadena está rodeado por quotes simples o dobles.
La manipulación de cadenas de caracteres
La conversión
Como en tantos otros lenguajes, son muchas las posibilidades que se ofrecen
en cuanto a la manipulación de estas cadenas.
Primero podemos observar la conversión de un número, usando la función
toString(). Su sintaxis es muy simple:
miCadena.toString ();
101
Dart, los fundamentos
Capítulo 4
No dude en utilizar esta potente función. Sobre todo porque es posible, como
se describe en el siguiente capítulo, modificar el resultado de esta última. Aquí
tenemos un ejemplo:
int conv = 12;
String numConv = conv.toString();
Uso de mayúsculas o minúsculas
También hay operaciones clásicas en minúsculas o mayúsculas; utilizan la
siguiente sintaxis, respectivamente:
miCadena.toLowerCase()
o
miCadena.toUpperCase()
Tomando el ejemplo de una cadena de caracteres llamada minMay con el valor
«Hola», sería posible usar las dos funciones como esta:
String minMay = "Hola";
print(minMay.toLowerCase());
print(minMay.toUpperCase());
Observación
La función print() sirve para mostrar el valor de un objeto en la consola.
©
Editions
ENI
-
All
rights
reserved
102
Desarrolle sus aplicaciones móviles multiplataforma con Dart
Flutter
El resultado de estas operaciones será el siguiente:
Resultado de las funciones toLowerCase() y toUpperCase()
La división de la cadena de caracteres
Finalmente, también es posible dividir una cadena usando la función
substring(). La sintaxis que se debe utilizar es la siguiente:
miCadena.substring(valorDeInicioIncluido, ValorDeFinExcluido);
Concretamente, es posible tener el siguiente ejemplo:
print(minMay.substring(0,3)); //Bon
El primer parámetro es el punto de partida de la división. En el ejemplo, la «B»
se corresponde con la posición 0 en la cadena. Por tanto, este parámetro se
incluye en el resultado.
El segundo parámetro, 3, es el término y se excluirá. En el ejemplo, es la «a».
Por lo tanto, la consola mostrará «Hol».
103
Dart, los fundamentos
Capítulo 4
2.1.3 Les booleanos
Otro tipo muy común que será de gran utilidad es el tipo booleano. Tomando
los valores verdaderos o falsos, se utilizará en particular en el establecimiento
de alternativas.
La escritura se realiza de la siguiente manera:
bool opcion1 = true;
bool opcion2 = false;
2.1.4 Tipos dinámicos
El tipo var
Finalmente, puede ser interesante mencionar los tipos var y dynamic. Se
utilizan cuando no se desea tipar una variable durante su declaración. En el
momento de la inicialización, el sistema, en función del valor que se le pasa,
determinará el tipo apropiado por sí solo.
En el caso de var, una vez que el sistema haya determinado el tipo, no será
posible cambiarlo. Por ejemplo, después de realizar la siguiente inicialización:
var unaVariable = "Hello";
Será imposible intentar ejecutar el siguiente código, ya que provocará un error
de compilación:
unaVariable = 1;
De hecho, el sistema conoce a unaVariable como una cadena de caracteres,
por lo que es imposible pasarle un número entero.
El tipo Dynamic
Por otro lado, los objetos tipados con Dynamic podrán ver como su tipo
evoluciona en función de los valores que se asignarán.
dynamic val = 'Hello';
print(val); //Hello
print(val.runtimeType); //String
val = 8;
print(val); //8
print(val.runtimeType); //int

Más contenido relacionado

Similar a Dart fundamentals in less than 40 chars

1ra parte elementos basicos del lenguaje
 1ra parte elementos basicos del lenguaje 1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguajeyuli02
 
Lenguaje de programacion c#
Lenguaje de programacion c#Lenguaje de programacion c#
Lenguaje de programacion c#mercedes1019
 
Unidad1
Unidad1Unidad1
Unidad1JHONNY
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1camnav
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Joaquin1418
 
Lenguaje de programacion C++ 1
Lenguaje de programacion C++ 1Lenguaje de programacion C++ 1
Lenguaje de programacion C++ 1David
 
Unidad1
Unidad1Unidad1
Unidad1JHONNY
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Facebook
 
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguajeLenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguajeDunkherz
 
Unidad1
Unidad1Unidad1
Unidad1chembe
 
Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++yesid19
 
Lenguajes De Programacion C nivel1-unidad1
Lenguajes De Programacion C nivel1-unidad1Lenguajes De Programacion C nivel1-unidad1
Lenguajes De Programacion C nivel1-unidad1charnisch
 
Elementos Básicos del Lenguaje
Elementos Básicos del LenguajeElementos Básicos del Lenguaje
Elementos Básicos del Lenguajechembe
 
Lenguaje De Programacion
Lenguaje De ProgramacionLenguaje De Programacion
Lenguaje De Programacioncharnisch
 

Similar a Dart fundamentals in less than 40 chars (20)

1ra parte elementos basicos del lenguaje
 1ra parte elementos basicos del lenguaje 1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguaje
 
Introduccion del Lenguaje C
Introduccion del Lenguaje CIntroduccion del Lenguaje C
Introduccion del Lenguaje C
 
Lenguaje de programacion c#
Lenguaje de programacion c#Lenguaje de programacion c#
Lenguaje de programacion c#
 
Unidad1
Unidad1Unidad1
Unidad1
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1
 
Lenguaje de programacion C++ 1
Lenguaje de programacion C++ 1Lenguaje de programacion C++ 1
Lenguaje de programacion C++ 1
 
Unidad1
Unidad1Unidad1
Unidad1
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1
 
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguajeLenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
 
Unidad1
Unidad1Unidad1
Unidad1
 
Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++
 
Lenguajes De Programacion C nivel1-unidad1
Lenguajes De Programacion C nivel1-unidad1Lenguajes De Programacion C nivel1-unidad1
Lenguajes De Programacion C nivel1-unidad1
 
Elementos Básicos del Lenguaje
Elementos Básicos del LenguajeElementos Básicos del Lenguaje
Elementos Básicos del Lenguaje
 
Unidad_01_01.pdf
Unidad_01_01.pdfUnidad_01_01.pdf
Unidad_01_01.pdf
 
Tutorial jared
Tutorial jaredTutorial jared
Tutorial jared
 
Lenguaje De Programacion
Lenguaje De ProgramacionLenguaje De Programacion
Lenguaje De Programacion
 
Constantes y variables enitmar
Constantes y variables enitmarConstantes y variables enitmar
Constantes y variables enitmar
 
Tipos de datos_para_c_(2)
Tipos de datos_para_c_(2)Tipos de datos_para_c_(2)
Tipos de datos_para_c_(2)
 
Constantes.docx
Constantes.docxConstantes.docx
Constantes.docx
 

Más de calamilla

0029-seguridad-informatica.pdf
0029-seguridad-informatica.pdf0029-seguridad-informatica.pdf
0029-seguridad-informatica.pdfcalamilla
 
pdfslide.tips_jose-agustin-la-panza-del-tepoztecopdf.pdf
pdfslide.tips_jose-agustin-la-panza-del-tepoztecopdf.pdfpdfslide.tips_jose-agustin-la-panza-del-tepoztecopdf.pdf
pdfslide.tips_jose-agustin-la-panza-del-tepoztecopdf.pdfcalamilla
 
Infografía_001.pdf
Infografía_001.pdfInfografía_001.pdf
Infografía_001.pdfcalamilla
 
circuitos-serie-y-paralelo-ejercicios.pdf
circuitos-serie-y-paralelo-ejercicios.pdfcircuitos-serie-y-paralelo-ejercicios.pdf
circuitos-serie-y-paralelo-ejercicios.pdfcalamilla
 
pdfcoffee.com_libro-aprende-dart-5-pdf-free.pdf
pdfcoffee.com_libro-aprende-dart-5-pdf-free.pdfpdfcoffee.com_libro-aprende-dart-5-pdf-free.pdf
pdfcoffee.com_libro-aprende-dart-5-pdf-free.pdfcalamilla
 
Spanish__Manual_2106 (1).pdf
Spanish__Manual_2106 (1).pdfSpanish__Manual_2106 (1).pdf
Spanish__Manual_2106 (1).pdfcalamilla
 
Solucion bd (1)
Solucion bd (1)Solucion bd (1)
Solucion bd (1)calamilla
 

Más de calamilla (8)

0029-seguridad-informatica.pdf
0029-seguridad-informatica.pdf0029-seguridad-informatica.pdf
0029-seguridad-informatica.pdf
 
pdfslide.tips_jose-agustin-la-panza-del-tepoztecopdf.pdf
pdfslide.tips_jose-agustin-la-panza-del-tepoztecopdf.pdfpdfslide.tips_jose-agustin-la-panza-del-tepoztecopdf.pdf
pdfslide.tips_jose-agustin-la-panza-del-tepoztecopdf.pdf
 
Infografía_001.pdf
Infografía_001.pdfInfografía_001.pdf
Infografía_001.pdf
 
circuitos-serie-y-paralelo-ejercicios.pdf
circuitos-serie-y-paralelo-ejercicios.pdfcircuitos-serie-y-paralelo-ejercicios.pdf
circuitos-serie-y-paralelo-ejercicios.pdf
 
pdfcoffee.com_libro-aprende-dart-5-pdf-free.pdf
pdfcoffee.com_libro-aprende-dart-5-pdf-free.pdfpdfcoffee.com_libro-aprende-dart-5-pdf-free.pdf
pdfcoffee.com_libro-aprende-dart-5-pdf-free.pdf
 
Spanish__Manual_2106 (1).pdf
Spanish__Manual_2106 (1).pdfSpanish__Manual_2106 (1).pdf
Spanish__Manual_2106 (1).pdf
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Solucion bd (1)
Solucion bd (1)Solucion bd (1)
Solucion bd (1)
 

Último

presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricoalexcala5
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAJOSLUISCALLATAENRIQU
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxbingoscarlet
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAJAMESDIAZ55
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfDiegoMadrigal21
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptxBRAYANJOSEPTSANJINEZ
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdfFernandaGarca788912
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaAlexanderimanolLencr
 
Clase 2 Revoluciones Industriales y .pptx
Clase 2 Revoluciones Industriales y .pptxClase 2 Revoluciones Industriales y .pptx
Clase 2 Revoluciones Industriales y .pptxChristopherOlave2
 
Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxYajairaMartinez30
 
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolicalf1231
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrialGibranDiaz7
 

Último (20)

VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctrico
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptx
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdf
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdf
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiología
 
Clase 2 Revoluciones Industriales y .pptx
Clase 2 Revoluciones Industriales y .pptxClase 2 Revoluciones Industriales y .pptx
Clase 2 Revoluciones Industriales y .pptx
 
Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptx
 
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrial
 

Dart fundamentals in less than 40 chars

  • 1. 97 Capítulo 4 Dart, los fundamentos Dart, los fundamentos 1. Introducción Dart es un lenguaje moderno, orientado a objetos, que apareció en 2010 por iniciativa de dos desarrolladores de Google: Lars Bak y Kasper Lund. Originalmente, este proyecto tenía como objetivo reemplazar JavaScript a medio o largo plazo debido a las dificultades para hacer evolucionar este últi- mo. Por lo tanto, Google diseñó Dart a partir de esta idea y la versión 1.0 se lanzó el 10 de octubre de 2011. El lenguaje incluso fue adoptado por ECMA International en 2014. Como recordatorio, se trata de una organización europea de estandarización en informática. Entre sus responsabilidades, se halla la de adoptar estándares, en particular para los lenguajes de programación (incluidos los de scripts). A pesar de los mejores esfuerzos de Google, Dart nunca se abrió paso y JavaScript permaneció firmemente establecido en su pedestal. El lenguaje fue cayendo gradualmente en el olvido, hasta la llegada de Flutter en 2018. La voluntad de impulsar el SDK a un primer plano llevó a Google, entre otras cosas, a lanzar una versión de Dart nueva, más simple, rápida e intuitiva a principios de 2018. La 2.0.
  • 2. © Editions ENI - All rights reserved 98 Desarrolle sus aplicaciones móviles multiplataforma con Dart Flutter Esta última versión es la que vamos a descubrir aquí, ya que, como hemos explicado en el primer capítulo, Flutter se basa en este lenguaje. Es fundamen- tal tener lo básico antes de poder disfrutar plenamente de todos los beneficios que nos brinda Flutter. Para implementar y probar los ejemplos que siguen, cabe destacar la existencia de una herramienta de gran utilidad: DartPad. La puede encontrar en la siguiente dirección: https://dartpad.dartlang.org/ DartPad de Google
  • 3. 99 Dart, los fundamentos Capítulo 4 2. Sintaxis básica Primero, vale la pena revisar la sintaxis básica de Dart. Por tanto, descubrire- mos cómo utilizar variables, constantes, colecciones, las opciones y los bucles. El objetivo no es ser exhaustivo, sino equiparnos con los elementos esenciales para el futuro. 2.1 Variables Dart admite una cierta cantidad de tipos, como números, cadenas, valores booleanos e incluso colecciones, como listas simples o listas que operan con un par clave/valor. Discutiremos estos dos últimos conceptos un poco más adelante en este capítulo. 2.1.1 Los números Sintaxis básica En cuanto a los números, podemos observar la posibilidad de utilizar números enteros (Integer) o números reales (Double). La escritura se hará de una forma bastante clásica: int miEntero; double miReal; Observación En este punto, si la variable no se inicializa con un valor elegido, tomará null como valor predeterminado. Este procesamiento también es válido para números (enteros o reales), ya que en Dart todo se considera un objeto. Podemos considerarlo un punto notable, ya que diverge de ciertos lenguajes. Se usa del siguiente modo: int miEntero = 2; double miReal = 1.856;
  • 4. © Editions ENI - All rights reserved 100 Desarrolle sus aplicaciones móviles multiplataforma con Dart Flutter Herencia de la clase num Los int y los double heredan de la clase num (las nociones de herencia se desarrollarán con más detalle en el próximo capítulo). Por tanto, es posible utilizar este último para garantizar que la variable sea un número de tipo int o double. De lo contrario, se producirá un error de compilación. num unNumero = 318; num unNumeroDiferente = 3.265464; Las operaciones con números Es posible realizar varias operaciones con los números, como conversiones de una cadena de caracteres. Para hacer esto, simplemente use la siguiente sintaxis: int.tryParse(valorAConvertir) ; Por ejemplo, para convertir la cadena de caracteres «32» en un número entero y asignarla inmediatamente a una variable, basta con que escriba esto: int numeroDesdeCadenaDeCaracteres = int.tryParse("32"); 2.1.2 Las cadenas de caracteres Sintaxis básica La declaración e inicialización de cadenas es similar a la de números: String miCadena = ‘Hello World‘; El valor de la cadena está rodeado por quotes simples o dobles. La manipulación de cadenas de caracteres La conversión Como en tantos otros lenguajes, son muchas las posibilidades que se ofrecen en cuanto a la manipulación de estas cadenas. Primero podemos observar la conversión de un número, usando la función toString(). Su sintaxis es muy simple: miCadena.toString ();
  • 5. 101 Dart, los fundamentos Capítulo 4 No dude en utilizar esta potente función. Sobre todo porque es posible, como se describe en el siguiente capítulo, modificar el resultado de esta última. Aquí tenemos un ejemplo: int conv = 12; String numConv = conv.toString(); Uso de mayúsculas o minúsculas También hay operaciones clásicas en minúsculas o mayúsculas; utilizan la siguiente sintaxis, respectivamente: miCadena.toLowerCase() o miCadena.toUpperCase() Tomando el ejemplo de una cadena de caracteres llamada minMay con el valor «Hola», sería posible usar las dos funciones como esta: String minMay = "Hola"; print(minMay.toLowerCase()); print(minMay.toUpperCase()); Observación La función print() sirve para mostrar el valor de un objeto en la consola.
  • 6. © Editions ENI - All rights reserved 102 Desarrolle sus aplicaciones móviles multiplataforma con Dart Flutter El resultado de estas operaciones será el siguiente: Resultado de las funciones toLowerCase() y toUpperCase() La división de la cadena de caracteres Finalmente, también es posible dividir una cadena usando la función substring(). La sintaxis que se debe utilizar es la siguiente: miCadena.substring(valorDeInicioIncluido, ValorDeFinExcluido); Concretamente, es posible tener el siguiente ejemplo: print(minMay.substring(0,3)); //Bon El primer parámetro es el punto de partida de la división. En el ejemplo, la «B» se corresponde con la posición 0 en la cadena. Por tanto, este parámetro se incluye en el resultado. El segundo parámetro, 3, es el término y se excluirá. En el ejemplo, es la «a». Por lo tanto, la consola mostrará «Hol».
  • 7. 103 Dart, los fundamentos Capítulo 4 2.1.3 Les booleanos Otro tipo muy común que será de gran utilidad es el tipo booleano. Tomando los valores verdaderos o falsos, se utilizará en particular en el establecimiento de alternativas. La escritura se realiza de la siguiente manera: bool opcion1 = true; bool opcion2 = false; 2.1.4 Tipos dinámicos El tipo var Finalmente, puede ser interesante mencionar los tipos var y dynamic. Se utilizan cuando no se desea tipar una variable durante su declaración. En el momento de la inicialización, el sistema, en función del valor que se le pasa, determinará el tipo apropiado por sí solo. En el caso de var, una vez que el sistema haya determinado el tipo, no será posible cambiarlo. Por ejemplo, después de realizar la siguiente inicialización: var unaVariable = "Hello"; Será imposible intentar ejecutar el siguiente código, ya que provocará un error de compilación: unaVariable = 1; De hecho, el sistema conoce a unaVariable como una cadena de caracteres, por lo que es imposible pasarle un número entero. El tipo Dynamic Por otro lado, los objetos tipados con Dynamic podrán ver como su tipo evoluciona en función de los valores que se asignarán. dynamic val = 'Hello'; print(val); //Hello print(val.runtimeType); //String val = 8; print(val); //8 print(val.runtimeType); //int