And, Or y Not en Dart
Parte de la sección Cómo hacerla interactiva del Journey de Flutter de Coddy. Lección 19 de 34.
A menudo, un solo valor bool no es suficiente. Dart los combina con tres operadores:
a && b(y): verdadero solo cuando ambos son verdaderosa || b(o): verdadero cuando al menos uno es verdadero!a(no): invierte verdadero y falso
bool _hasTicket = true;
bool _isLate = false;
_hasTicket && !_isLate // true: puedes embarcar
_hasTicket || _isLate // true: al menos una de las condiciones es verdaderaEl resultado es un valor bool, así que encaja antes del ? de una expresión condicional o en un if. Los paréntesis facilitan la lectura:
Text((_hasTicket && !_isLate) ? 'Board now' : 'Wait')Desafío
FácilLa puerta se abre solo con la llave y el código. Cambia las dos líneas:
- la primera muestra
The door is opencuando tienes la llave y conoces el código; de lo contrario, muestraThe door is locked - la segunda muestra
Getting closercuando tienes la llave o conoces el código; de lo contrario, muestraFind the key and the code
Pruébalo tú mismo
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: const HomePage(),
);
}
}
class HomePage extends StatefulWidget {
const HomePage({super.key});
@override
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
bool _hasKey = false;
bool _knowsCode = false;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Door')),
body: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
const Text('The door is locked', style: TextStyle(fontSize: 24)),
const Text('Find the key and the code'),
const SizedBox(height: 16),
ElevatedButton(
onPressed: () {
setState(() {
_hasKey = true;
});
},
child: const Text('Take the key'),
),
ElevatedButton(
onPressed: () {
setState(() {
_knowsCode = true;
});
},
child: const Text('Learn the code'),
),
],
),
),
);
}
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Cómo hacerla interactiva
1Botones
Tu primer botónImprimir en la consolaBotones de texto y contornoBotones con iconosEl botón de acción flotante7Interruptores y deslizadores
Encender y apagar con un interruptorMarcar una casillaElegir un valor con un deslizador5Decisiones
bool y el operador ? :Decisiones con if y elseAnd, Or y Not en DartMostrar y ocultar un widgetAtenuar un botónPractica por tu cuenta: Compilador de Flutter online