And, Or e Not in Dart
Fa parte della sezione Rendere l’app interattiva del percorso Flutter di Coddy. Lezione 19 di 34.
Spesso un bool non basta. Dart li combina con tre operatori:
a && b(e): true solo quando entrambi sono truea || b(o): true quando almeno uno è true!a(non): inverte true e false
bool _hasTicket = true;
bool _isLate = false;
_hasTicket && !_isLate // true: puoi salire a bordo
_hasTicket || _isLate // true: almeno uno è veroIl risultato è un bool, quindi può essere inserito prima del ? di un'espressione condizionale o in un if. Le parentesi ne facilitano la lettura:
Text((_hasTicket && !_isLate) ? 'Board now' : 'Wait')Sfida
FacileLa porta si apre solo con la chiave e il codice. Modifica le due righe:
- la prima mostra
The door is openquando hai la chiave e conosci il codice, altrimentiThe door is locked - la seconda mostra
Getting closerquando hai la chiave o conosci il codice, altrimentiFind the key and the code
Provalo tu
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'),
),
],
),
),
);
}
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Rendere l’app interattiva
5Decisioni
bool e l'operatore ? :Decisioni con if ed elseAnd, Or e Not in DartMostrare e nascondere un widgetDisabilitare visivamente un pulsanteEsercitati da solo: Compilatore Flutter online