And, Or и Not в Dart
Часть раздела Добавляем интерактивность путешествия по Flutter на Coddy. Урок 19 из 34.
Часто одного значения bool недостаточно. Dart объединяет их с помощью трёх операторов:
a && b(И): true, только если оба значения truea || b(ИЛИ): true, если хотя бы одно значение true!a(НЕ): меняет true на false и наоборот
bool _hasTicket = true;
bool _isLate = false;
_hasTicket && !_isLate // true: вы можете сесть на борт
_hasTicket || _isLate // true: хотя бы одно условие истинноРезультат имеет тип bool, поэтому его можно поместить перед ? в условном выражении или использовать в if. Скобки упрощают чтение:
Text((_hasTicket && !_isLate) ? 'Board now' : 'Wait')Задание
ЛегкоДверь открывается только при наличии ключа и кода. Измени две строки:
- в первой выводится
The door is open, если у тебя есть ключ и ты знаешь код, иначе —The door is locked - во второй выводится
Getting closer, если у тебя есть ключ или ты знаешь код, иначе —Find the key and the code
Попробуйте сами
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'),
),
],
),
),
);
}
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Добавляем интерактивность
1Кнопки
Ваша первая кнопкаВывод в консольТекстовые и контурные кнопкиКнопки с иконкамиПлавающая кнопка действия7Переключатели и ползунки
Включаем и выключаем переключателемОтмечаем флажокВыбираем значение ползунком5Условия
bool и оператор ? :Условия с if и elseAnd, Or и Not в DartПоказать и скрыть виджетСделать кнопку неактивнойПотренируйтесь самостоятельно: Онлайн-компилятор Flutter