CursosEmpresasBlogLiveConfPrecios

Operaciones

Clase 11 de 23 • Curso de Dart desde Cero

Clase anteriorSiguiente clase

Contenido del curso

Introducción

  • 1
    Bienvenida al curso

    Bienvenida al curso

    01:44 min
  • 2
    Introducción de Dart

    Introducción de Dart

    07:59 min
  • 3
    Introducción a DartPad

    Introducción a DartPad

    12:17 min

Las bases de programación

  • 4
    Variables

    Variables

    04:51 min
  • 5
    Tipos de datos básicos

    Tipos de datos básicos

    15:33 min
  • 6
    Tipos de datos avanzados

    Tipos de datos avanzados

    07:23 min
  • 7
    Manipulación de variables

    Manipulación de variables

    05:54 min
  • 8
    String con Dart

    String con Dart

    13:47 min
  • 9
    Conversión de tipos

    Conversión de tipos

    05:17 min
  • 10

    Ejercicio sobre las bases de programación

    00:49 min

Flujo de datos

  • 11
    Operaciones

    Operaciones

    Viendo ahora
  • 12
    Condicionales

    Condicionales

    08:44 min
  • 13
    Ciclos

    Ciclos

    08:04 min
  • 14
    Enumeraciones

    Enumeraciones

    04:59 min
  • 15

    ¡Construye una calculadora!

    01:07 min

Colecciones

  • 16
    Introducción a las colecciones

    Introducción a las colecciones

    01:50 min
  • 17
    Colección de tipo Lista

    Colección de tipo Lista

    09:46 min
  • 18
    Colección de tipo Sets

    Colección de tipo Sets

    05:04 min
  • 19
    Colección de tipo Mapa

    Colección de tipo Mapa

    07:52 min
  • 20
    Colección de colecciones

    Colección de colecciones

    08:39 min
  • 21
    Flujos dentro de colecciones

    Flujos dentro de colecciones

    04:44 min
  • 22

    Reto de colecciones

    00:44 min

Conclusión

  • 23
    Sigue aprendiendo Dart

    Sigue aprendiendo Dart

    00:38 min
Tomar examen

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads
        Adolfo Martínez Garza

        Adolfo Martínez Garza

        student•
        hace 4 años

        ?: se le conoce como operador ternario Su estructura sería así: condicional ? verdadero : falso

          Melvin Salas

          Melvin Salas

          teacher•
          hace 4 años

          operador ternario es el nombre correcto ;)

        Ivan Ezequiel Mazzalay

        Ivan Ezequiel Mazzalay

        student•
        hace 4 años

        Les dejo un resumen de los ejemplos vistos con algunos comentarios de los tipos de datos y lo que hacen algunas operaciones. Espero les sirva:

        void main() { //Operaciones Aritméticas int valor1 = 7; int valor2 = 3; // Suma int resultadoSuma = valor1 + valor2; print("El resultado de la suma es: $resultadoSuma"); //Resta int resultadoResta = valor1 - valor2; print("El resultado de la resta es: $resultadoResta"); //Division: El resultado de la división siempre es Double double resultadoDiv = valor1 / valor2; print("El resultado de la division es: $resultadoDiv"); //Producto: El resultado del producto, depende del tipo de dato ingresado: // int * int = int // double * double = double // int * double = double int resultadoProd = valor1 * valor2; print("El resultado del prodcuto es: $resultadoProd"); //Parte entera del Resultado de una División ~/ int resultadoIntDiv = valor1 ~/ valor2; print("La parte entera de la división es: $resultadoIntDiv"); //Operador módulo %: Nos devuelve el resto entero de una división int resultadoModDiv = valor1 % valor2; print("El resto entero de la división es: $resultadoModDiv"); }
        void main() { //Operaciones de Asignación int valor1 = 8; int valor2 = 2; //Asignamos a valor1 la suma de valor1 + valor2 valor1 += valor2; print("El resultado de valor1 + valor2: $valor1"); //Esto es válido para el resto de las operaciones }
        void main() { //Operaciones de Asignación int valor1 = 8; int valor2 = 2; //Asignamos a valor1 la suma de valor1 + valor2 valor1 += valor2; print("El resultado de valor1 + valor2: $valor1"); //Esto es válido para el resto de las operaciones }
        void main() { //Operaciones Lógicas bool llueve = true; bool haceFrio = false; //Operación Or: es falsa solo cuando ambas condiciones son falsas, el resto de los casos es verdadera bool llevoAbrigo = llueve || haceFrio; print("$llueve || $haceFrio == $llevoAbrigo"); //Operador And: Es verdadero solo si ambas variables son verdaderas, el resto de los casos es falsa bool llevoAbrigoAND = llueve && haceFrio; print("$llueve && $haceFrio == $llevoAbrigoAND"); //Operador Ternario ?: Funciona como un if de forma abreviada //Operador Negación !: Nos devuelve el valor opuesto de la variable, si es true nos devuelve false y viceversa. print(!llueve); }
          Daniel Jussef Zamorano Silva

          Daniel Jussef Zamorano Silva

          student•
          hace 3 años

          Gracias!

        Vidale C.

        Vidale C.

        student•
        hace 4 años
        void main() { int n1 = 4; int n2 = 3; print(n2 ~/ n1); //0 print(n2 / n1); //0.75 print(n2 % n1); //3 }

        El modulo nos regresa el residuo entero de una división. En este caso es 3 porque el cuatro no cabe en el tres, por lo que el tres original sigue sobrando.

        En el caso de la opción que nos regresa cero es porque no hay residuo entero en esa división, es decir. 0.75 no es entero pero si hacemos 5~/4 obtenemos 1.25 que podemos descomponer en 1 + 0.25 por lo tanto tenemos que el residuo entero es 1.

          Melvin Salas

          Melvin Salas

          teacher•
          hace 4 años

          Perfecto ;)

          Tyler Valencia

          Tyler Valencia

          student•
          hace 3 años

          Muchas gracias me quedo mucho mas claro Que es y para que sirve el operador Modulo "%". Gracias.

        Pedro Diaz

        Pedro Diaz

        student•
        hace 3 años

        El operador .... ?: se e conoce como Elvis por que se parece al cantante.

        Emmanuel Rodríguez

        Emmanuel Rodríguez

        student•
        hace 3 años

        Operadores

        ✨ Concepto clave Una operación es la definición de una acción que se desee ejecutar dependiendo de su concepto y ámbito.

        . De manera general, en Dart tenemos los siguientes operadores según su categoría: .

        Operators
        .

        Test Operators

        Si deseamos realizar una inspección sobre un determinado objeto (recordando que los tipos son objetos), tendremos los siguientes operadores: .

        Test-operators
        . De ellos, podemos realizar la siguiente asignación:

        (employee as Person).firstName = 'Bob';

        O, la siguiente condicional:

        employee.firstName = (employee is Person) ? 'Bob' : 'Frank';

        Assignment Operators

        Assignment-operators
        . Donde sí deseamos asigna solamente un valor, cuando la variable es null tendríamos b ??= value;. . o si deseamos asignar y si aquel valor fuese null tendríamos:
        String? person = name ?? 'anonymous'; // anonymous

        También, si deseamos definir un objeto a partir de otro mediante el cascade operator:

        var product = Product() ..size = Size.MEDIUM ..price = Price.LOW ..quantity = 4;
        Julia Gabriela Nieva Paredes

        Julia Gabriela Nieva Paredes

        student•
        hace 3 años

        Algunos operadores están mal escritos, tanto en la lámina con en el comentario del código del profe. Por ejemplo, el != aparece =!, y también el >= aparece como =>. Ojalá pudieran corregirlo por favor.

        Brandon Manzo

        Brandon Manzo

        student•
        hace 4 años

        En este caso que dio problemas de tipo de variable, no seria recomendable usar dynamic?

          Melvin Salas

          Melvin Salas

          teacher•
          hace 4 años

          Cual error te dió? Es probable que debas usar double para guardar el resultado.

          Brandon Manzo

          Brandon Manzo

          student•
          hace 4 años

          No es un error, es que me pareció curioso que en este video, al momento de dividir o multiplicar, tuvo que hacer el cambio de tipo de variable (de double a int).

          Por ejemplo: si es un entero (int) tiene menos peso que un decimal (double) y usar un double para guardar enteros es un desperdicio de memoria

          Por eso mejor replanteo la pregunta: Es recomendable usar Dynamic o habrá alguna forma que sea mucho más eficiente con respecto a la memoria?

        Alberto Aleman Rocha

        Alberto Aleman Rocha

        student•
        hace 4 años

        Utilice el tipo de dato dynamic en el valor1 para no tener que crear una nueva variable de tipo double al momento de hacer la división. Creí que por ser el resultado un entero no necesitaría ser almacenada en un double pero no es así.

        void main() { //Operaciones de Asignación // +=, -=, *=, /=, ~/= y %= dynamic valor1 = 8; int valor2 = 2; //Usando += print('$valor1 += $valor2'); valor1 += valor2; print('Resultado: $valor1'); valor1 = 8; //Usando -= print('$valor1 -= $valor2'); valor1 -= valor2; print('Resultado: $valor1'); valor1 = 8; //Usando *= print('$valor1 *= $valor2'); valor1 *= valor2; print('Resultado: $valor1'); valor1 = 8; //Usando /= print('$valor1 /= $valor2'); valor1 /= valor2; print('Resultado: $valor1'); valor1 = 8; //Usando ~/= print('$valor1 ~/= $valor2'); valor1 ~/= valor2; print('Resultado: $valor1'); valor1 = 8; //Usando %= print('$valor1 %= $valor2'); valor1 %= valor2; print('Resultado: $valor1'); }
          Albin Anthony Hinostroza Macavilca

          Albin Anthony Hinostroza Macavilca

          student•
          hace 3 años

          gracias

        Fernando García Guerrero

        Fernando García Guerrero

        student•
        hace 3 años

        Gente les dejo una tabla de valores por si no la conocen

        Para || (OR) true || true = true true || false = true false || true = true false || false = false

        Para && (AND) true && true = true true && false = false false && true = false false && false = false

        Para ! (NEGACION) !true = false !false = true

        Juan Fernando López Hernández

        Juan Fernando López Hernández

        student•
        hace 4 años

        ?: Seria un operador ternario:

        //TipoDeVariable nombreVarialbe = Condicion ? Resultado1 : Resultado2 var valor1; var valo2; var resultado = valor1 == 1 ? valor1 : valor2 println(resultado).
        Ivan Daniel Oviedo Alvarado

        Ivan Daniel Oviedo Alvarado

        student•
        hace 4 años

        Una consulta, en Dart no existe el concepto de truncar un número double cuando es asignado a una variable int?

          Tulio Junior Rangel Nuñez

          Tulio Junior Rangel Nuñez

          student•
          hace 3 años

          Si existe, de hecho, se llama truncate y lo podrías usar así:

          int valor1 = 7; int valor2 = 3; int resultado = (valor1 / valor2).truncate(); print(resultado); // 2

          También está la opción inversa de truncar un int a double con .truncateToDouble()

        Cesar Nunes

        Cesar Nunes

        student•
        hace 4 años

        No logro encontrar informacion de que es y como utilizar -expr. Alguien puede ayudarme?

          Melvin Salas

          Melvin Salas

          teacher•
          hace 4 años

          Hola Cesar, -expr es cuando tienes una variable de tipo número y la conviertes en su negación.

          Por ejemplo:

          • Si x = 5, -x sería -5
          • O, si y = -8, -y sería 8
        Alberto Aleman Rocha

        Alberto Aleman Rocha

        student•
        hace 4 años

        ¿Por qué al hacer el código de la imagen aparece ese aviso "Dead Code"?

        dartimagen.png

          Melvin Salas

          Melvin Salas

          teacher•
          hace 4 años

          Porque en este punto llueve es true, si cambias el valor de a false verás que no pasa eso.

          Esto se debe a que el programa es muy pequeño y el analizador de código de DartPad hace es indicación para optimizar el código ya que la variable llueve nunca cambia de valor.

          En este caso te recomendaría ignorarlo ;)

        Ronal Vique Vasquez Inestroza

        Ronal Vique Vasquez Inestroza

        student•
        hace 3 años

        porque al hacer: valor1 % valor2;

        el residuo entero de la división es 1, cual es la función matemática es la que utiliza para llegar a ese resultado.

          Melvin Salas

          Melvin Salas

          teacher•
          hace 3 años

          El operador % es el operador módulo, el cual es el residuo entero de la división entera, en el ejemplo es lo siguiente:

          7 / 3 = 2,33...

          En caso de una división entera sería 2, como quedaron 0.33... en los decimales, se puede modificar por el divisor 3, por lo que 3 x 0.33... es igual a 1.

          Esa es una forma de verlo.

        Adolfo Andres Chafardett Silva

        Adolfo Andres Chafardett Silva

        student•
        hace 4 años

        En caso de que se trate de diferenciar un string "numero" de un numero, como actuaria el operador "==" o "!="?

          Melvin Salas

          Melvin Salas

          teacher•
          hace 4 años

          Al realizar una comparación de un string con un número el resultado siempre va a dar negativo.

          Porque dart compara el valor en términos absolutos, o sea, tanto tipo como valor.

          En ese caso:

          void main() { print("12" == "12"); // true print("12" == 12); // false print(12 == 12); // true }
        Christian David Tovar Tirado

        Christian David Tovar Tirado

        student•
        hace 3 años

        Operador ternario, podría decir que es ese

        Andy Antonio Paz Cambara

        Andy Antonio Paz Cambara

        student•
        hace 3 años

        jajaja yo creo que se le dice Elvis operator

        Brayan Sanchez

        Brayan Sanchez

        student•
        hace 3 años

        dato para no olvidar

        Samuel Márquez

        Samuel Márquez

        student•
        hace 3 años

        Se le llama operador ternario al ?:

        José Darío Argotte Briceño

        José Darío Argotte Briceño

        student•
        hace 3 años

        void main() { //Ejemplo de operador ternario ? int valor1 = 12; int valor2 = 10;

        String resultado = valor1>valor2 ? "mayor":"menor"; print("el $valor1 es $resultado que $valor2"); }