Tipos de datos avanzados
Clase 6 de 23 • Curso de Dart desde Cero
Contenido del curso
Adolfo Martínez Garza
Melvin Salas
Franklin Gil
Andrés Felipe Arango Rocha
Jonathan Edwin Gutiérrez Olvera
Yeicob Calderón
Melvin Salas
Tomás Antonio Díaz Montilla
Alex Vladimir Minga Arias
Emmanuel Rodríguez
Kebyn Enrique Ajin Elías
Andrés Felipe Arango Rocha
Héctor
Alex Vladimir Minga Arias
Santiago Puerta
Alvaro Moises Gonzalez Quintero
Andres Elias Mendoza Zuluaga
Johan Astudillo
Diego Frank Lipa Choque
Diego Frank Lipa Choque
Diego Frank Lipa Choque
Alex Vladimir Minga Arias
const: Debe ser conocido su valor en tiempo de compilación final: Todo lo que no se conozca en el momento de la compilación debe ser final
Excelente explicación
La diferencia del final con el const, es que el final puede ser declarado y no definido, y definida la primera vez, no se puede cambiar.
void main() { final x; x = 2; x = 4; // Error, Solo puede ser definido una vez const y; y = "Foo"; // Error }
Para el ejercicio supongamos que tenemos un textfield donde el user pone un nombre y se guardará en la variable nombre tanto en const como en final:
Con el ejemplo de abajo sí se puede. Puedes correr el programa. El usuario podrá poner un nombre en el textfield y se guardará en la variable.
final nombre = textfield.result
No se puede realizar el ejemplo de abajo, se tiene que conocer el valor de la variable const antes de correr el programa.
const nombre = textfield.result //Error
EJEMPLO: const nombre = “Felipe” //bien!
¿Para qué const puede ser útil? -el nombre de la app -la url de alguna página de internet que utilicemos en la app -y cualquier valor que no cambie y se sepa de antemano
Muy buena explicación, me ayudaste mucho para entender las diferencias entre const y final 😄
las variables tipo var pueden ser declaradas y en otra linea inicializadas aunque no se una buena practica. puede permitir algo similar a lo siguiente:
var temporal ; temporal = 2; print(temporal); temporal = "Hola"; print(temporal);
Ya que reconoce el tipo de la variable como dynamic.
Excelente explicación :D
El comportamiento es igual a un dynamic, y el tipo lo podemos saber gracias al método runtimeType, que aparece como Null
Hola, pero explícitamente la diferencia entre los tipos de variables; <const> y final... se que <const> no debe cambiar de valor; pero <final> tampoco? en que caso preferiría usar alguno..? (no me queda claro).
final se inicializa al momento de utilizarse, const desde el inicio.
Es decir puedes poner final variable; Y muchas lineas mas abajo poner varianle=3.14
Tengo conflicto con esta clase porque var, dynamic, final y const no son tipos de datos 😅
.
La razón es porque todas ellas son encapsulamientos de datos dependiendo del caso (por ejemplo, al emplear OOP).
.
Por ejemplo:
final name = 'Bob'; final String nickname = 'Bobby';
Aquí, tenemos una variable final que dependen de una abstracción de una clase, donde el tipo es String (inferido o explícito, respectívamente).
.
❓ Debate ¿Sabes la razón por el cual debes evitar usar
dynamicy es una opción muy particular?
.
Tipos de datos avanzados
✨ Concepto Clave Un tipo avanzado expone un conjunto de contexto en utilidades que permiten el desarrollo de requerimientos en alto orden.
. Cuando referimos a datos avanzados, nos referimos a aquellas referencias que permiten definir valores complejos de programación, categorizados en: .
Objects)Enum)Future o Stream).
Donde su implementación radica en el uso del operador diamance < type >.
.
Interesante el tipo de dato dynamic :)
Es un arma de doble filo. Me ha pasado que a veces no se qué tipo de dato es, me confundo y a veces tengo errores.
Excelente!!!
Cuando es recomendado usar var ? Yo siempre procuro usar los tipos de datos especificos a cada variable
Eso depende... la buena practica es saber el tipo de dato, tal y como Melvin dice, la cosa es que.. algunas veces es muy complejo saber el tipo de dato de la respuesta de una pagina de internet por ejemplo. Es ahí donde los tipos de datos de var o dynamic juegan un papel importante.
Entonces const cuando tenemos el valor de la variable y queramos mutarla por algún motivo.
final si no conocemos el valor en el momento, pero es necesario que no se pueda mutar el valor que guarda
dynamic para hacer reasignaciones con diferentes tipos de datos, basicamente como lo hace JavaScript.
Lo que veo es que no se puede designar el tipo var en una lista, en estos casos si da un error, se debe seleccionar el tipo de variable especifico : List<var>Paises=["colombia","peru"] arroja un error.
hay influencia en rendimiento, si uso var o pongo el tipo de dato?
//Final and Const //Infieren el tipo de dato const pi = 3.312123; const name = "Diego Lipa"; final pi2 = 3.32232; final nombre2 = "Diegolipa"; //dynamic // se le puede asignar diferentes tipos de datos dynamic nombre3 = "diego lipa"; nombre3 = 1234; nombre3 = true; print(nombre3);
void main() { print('Hola Mundo'); bool d = true; print(d); int edad = 20; double estatura = 1.65; print(edad + estatura); String nombre = 'Diego Lipa Choque'; print(nombre); var flybyObjects = [2, 'Saturn', 'Uranus', 'Neptune']; print(flybyObjects); List<String> p = ['Diego']; print(p); }
void main() { print('Hola Mundo'); bool d = true; print(d); int edad = 20; double estatura = 1.65;
print(edad + estatura);
String nombre = 'Diego Lipa Choque'; print(nombre);
var flybyObjects = [2, 'Saturn', 'Uranus', 'Neptune']; print(flybyObjects);
List<String> p = ['Diego']; print(p); }
Cuando se podria considerar adecuado usar var ? Yo siempre procuro usar los tipos de datos especificos