AND, OR i NOT w Dart
Część sekcji Dodajemy interaktywność ścieżki Flutter w Coddy. Lekcja 19 z 34.
Często jedna wartość bool nie wystarcza. Dart łączy je za pomocą trzech operatorów:
a && b(i): true tylko wtedy, gdy obie wartości są truea || b(lub): true, gdy co najmniej jedna wartość jest true!a(nie): zmienia true na false i false na true
bool _hasTicket = true;
bool _isLate = false;
_hasTicket && !_isLate // true: możesz wejść na pokład
_hasTicket || _isLate // true: co najmniej jeden warunek jest spełnionyWynikiem jest wartość bool, więc pasuje przed ? w wyrażeniu warunkowym lub w instrukcji if. Nawiasy ułatwiają czytanie:
Text((_hasTicket && !_isLate) ? 'Board now' : 'Wait')Wyzwanie
ŁatwyDrzwi otwierają się tylko za pomocą klucza i kodu. Zmień te dwa wiersze:
- pierwszy wyświetla
The door is open, gdy masz klucz i znasz kod, w przeciwnym razieThe door is locked - drugi wyświetla
Getting closer, gdy masz klucz lub znasz kod, w przeciwnym razieFind the key and the code
Spróbuj swoich sił
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'),
),
],
),
),
);
}
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Dodajemy interaktywność
1Przyciski
Twój pierwszy przyciskWyświetlanie tekstu w konsoliPrzyciski tekstowe i konturowePrzyciski z ikonamiPływający przycisk akcji7Przełączniki i suwaki
Włączanie i wyłączanie przełącznikiemZaznacz pole wyboruWybierz wartość za pomocą suwaka5Decyzje
bool i operator ? :Decyzje z if i elseAND, OR i NOT w DartPokaż i ukryj widgetWyszarz przyciskPoćwicz samodzielnie: Kompilator Flutter online