?: se le conoce como operador ternario
Su estructura sería así:
condicional ? verdadero : falso
Introducción
Bienvenida al curso
Introducción de Dart
Introducción a DartPad
Quiz: Introducción
Las bases de programación
Variables
Tipos de datos básicos
Tipos de datos avanzados
Manipulación de variables
String con Dart
Conversión de tipos
Ejercicio sobre las bases de programación
Quiz: Las bases de programación
Flujo de datos
Operaciones
Condicionales
Ciclos
Enumeraciones
¡Construye una calculadora!
Colecciones
Introducción a las colecciones
Colección de tipo Lista
Colección de tipo Sets
Colección de tipo Mapa
Colección de colecciones
Flujos dentro de colecciones
Reto de colecciones
Conclusión
Sigue aprendiendo Dart
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Melvin Salas
Aportes 29
Preguntas 6
?: se le conoce como operador ternario
Su estructura sería así:
condicional ? verdadero : falso
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);
}
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.
El operador … ?: se e conoce como Elvis por que se parece al cantante.
✨ 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:
.
.
Si deseamos realizar una inspección sobre un determinado objeto (recordando que los tipos son objetos), tendremos los siguientes operadores:
.
.
De ellos, podemos realizar la siguiente asignación:
(employee as Person).firstName = 'Bob';
O, la siguiente condicional:
employee.firstName = (employee is Person) ? 'Bob' : 'Frank';
.
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;
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.
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');
}
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
?:
Seria un operador ternario:
//TipoDeVariable nombreVarialbe = Condicion ? Resultado1 : Resultado2
var valor1;
var valo2;
var resultado = valor1 == 1 ? valor1 : valor2
println(resultado).
Operador ternario, podría decir que es ese
jajaja yo creo que se le dice Elvis operator
dato para no olvidar
Se le llama operador ternario al ?:
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”);
}
void main() {
int valor1 = 8;
int valor2 = 2;
//operaciones aritmeticas + , - ,* ,/, ~/,%
//int resul= val1 + val2; //suma
// int resul= val1 - val2; //resta
//int resul= val1 * val2; //multiplicacion
//double resul= val1 / val2; // div
//int resul= val1 ~/ val2; // resultado de la divicion a entero
//int resul= val1 % val2; //residuo entero de la divicion
//operaciones de asignacion +=, -=, *=, /= ,~/= y =%
/* print("$valor1 %= $valor2 “);
valor1 %= valor2;
print(”$valor1"); */
//operaciones de relacionales == , =! ,=> ,>,< y <=
//int letra1 = 5;
//int letra2 = 5;
// bool resultado = letra1 >= letra2;
// print ("$letra1 >= $letra2 = $resultado");
//operaciones logicas || ,&& , ! ,?;
bool llueve = true;
bool haceFrio = true;
bool llevoAbrigo= llueve && haceFrio;
print("$llueve && $haceFrio = $llevoAbrigo ");
}
//Operaciones logicas
//||, &&, ! y ?
void main() {
bool deudas = true;
bool falta_de_dinero = true;
bool estudiar_en_Platzi = deudas || falta_de_dinero;
print("$deudas || $falta_de_dinero = $estudiar_en_Platzi");
}
A tener en cuenta al momento de comparar, por mas que tengan la misma asignacion, tener en cuenta Mayusculas y Minusculas.
Este es mi codigo, aprendiendo Dart.
El operador :?
es conocido como operador ternario… Pero en Kotlin lo conocí como el Elvis Operator XD
Un pequeño ejemplo de la tabla de multiplicar
Saludos, les comparto un ejercicio con operaciones lógicas.
Existe también el null-aware operator
??
int a; //null
print(a ?? 3) //print-3
void main ( ) {
print('El resultado nos devolverá un valor True o False');
String valor1 = 'Hola';
String valor2 = 'Adios';
bool resultado = valor1 == valor2;
print('Valor1 es igual a: $valor1');
print('Valor2 es igual a: $valor2');
print('El resultado de comprarar valor1 == valor2 es igual a: $resultado');
}
El resultado nos devolverá un valor True o False
Valor1 es igual a: Hola
Valor2 es igual a: Adios
El resultado de comprarar valor1 == valor2 es igual a: false
void main ( ) {
print('El resultado nos devolverá un valor True o False');
String valor1 = 'Hola';
String valor2 = 'Hola';
bool resultado = valor1 == valor2;
print('Valor1 es igual a: $valor1');
print('Valor2 es igual a: $valor2');
print('El resultado de comprarar valor1 == valor2 es igual a: $resultado');
}
El resultado nos devolverá un valor True o False
Valor1 es igual a: Hola
Valor2 es igual a: Hola
El resultado de comprarar valor1 == valor2 es igual a: true
void main() {
// Operaciones de Asignación
// += , -= , *= , /= , ~/= y =%
double valor1 = 8;
int valor2 = 2;
print('Valor1 es $valor1');
print('Valor2 es $valor2');
print('Si: $valor1 /= $valor2');
valor1 /= valor2;
print('El nuevo valor numérico de valor1 es: $valor1');
}
Valor1 es 8
Valor2 es 2
Si: 8 /= 2
El nuevo valor numérico de valor1 es: 4
void main() {
// Operaciones de Asignación
// += , -= , *= , /= , ~/= y =%
int valor1 = 8;
int valor2 = 2;
print('Valor1 es $valor1');
print('Valor2 es $valor2');
print('Si: $valor1 ~/= $valor2');
valor1 ~/= valor2;
print('El nuevo valor numérico de valor1 es: $valor1');
}
Valor1 es 8
Valor2 es 2
Si: 8 ~/= 2
El nuevo valor numérico de valor1 es: 4
void main() {
// Operaciones de Asignación
// += , -= , *= , /= , ~/= y =%
int valor1 = 8;
int valor2 = 2;
print('Valor1 es $valor1');
print('Valor2 es $valor2');
print('Si: $valor1 *= $valor2');
valor1 *= valor2;
print('El nuevo valor numérico de valor1 es: $valor1');
}
Valor1 es 8
Valor2 es 2
Si: 8 *= 2
El nuevo valor numérico de valor1 es: 16
void main() {
// Operaciones de Asignación
// += , -= , *= , /= , ~/= y =%
int valor1 = 8;
int valor2 = 2;
print('Valor1 es $valor1');
print('Valor2 es $valor2');
print('Si: $valor1 -= $valor2');
valor1 -= valor2;
print('El nuevo valor numérico de valor1 es: $valor1');
}
Valor1 es 8
Valor2 es 2
Si: 8 -= 2
El nuevo valor numérico de valor1 es: 6
Así lo veo
void main() {
// Operaciones de Asignación
// + = , - = , * = , / = , I / = y = %
int valor1 = 8;
int valor2 = 2;
print('Valor1 es $valor1');
print('Valor2 es $valor2');
print('Si: $valor1 += $valor2');
valor1 += valor2;
print('El nuevo valor numérico de valor1 es: $valor1');
}
El resultado en pantalla es:
Valor1 es 8
Valor2 es 2
Si: 8 += 2
El nuevo valor numérico de valor1 es: 10
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?