🧑‍💻bool

bool — это базовый тип данных в Dart, представляющий логическое значение, которое может быть либо true, либо false. Тип данных bool имеет ограниченное количество методов и свойств, так как он служит для выполнения простых логических операций. Вот основные особенности и применение bool в Dart:

Свойства и методы типа данных bool

  1. toString()

    • Преобразует значение bool в строку "true" или "false".

    bool isTrue = true;
    print(isTrue.toString()); // Вывод: "true"

    Где использовать: Когда нужно отобразить или сохранить логическое значение в текстовом формате, например, для логирования или отображения в пользовательском интерфейсе.

  2. Операции сравнения и логические операторы

    • К bool можно применять логические операторы (&&, ||, !) для создания сложных условий.

    bool isSunny = true;
    bool isWarm = false;
    
    // Логическое И (AND)
    print(isSunny && isWarm); // Вывод: false
    
    // Логическое ИЛИ (OR)
    print(isSunny || isWarm); // Вывод: true
    
    // Логическое НЕ (NOT)
    print(!isSunny); // Вывод: false

    Где использовать: В условиях и циклах, например, для проверки различных сценариев или выполнения разных действий в зависимости от значений bool.

  3. Оператор сравнения

    • Можно использовать операторы == и != для сравнения значений bool.

    bool a = true;
    bool b = false;
    
    print(a == b); // Вывод: false
    print(a != b); // Вывод: true

    Где использовать: При необходимости сравнить два значения типа bool, чтобы определить, одинаковы они или различны.

Пример применения bool в Flutter

Пример Flutter-приложения, которое демонстрирует использование методов и логических операций с bool.

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Bool Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: BoolDemoScreen(),
    );
  }
}

class BoolDemoScreen extends StatefulWidget {
  @override
  _BoolDemoScreenState createState() => _BoolDemoScreenState();
}

class _BoolDemoScreenState extends State<BoolDemoScreen> {
  bool isSwitched = false;
  bool isSunny = true;
  bool isWarm = false;
  String result = '';

  void _evaluateConditions() {
    setState(() {
      result = 'isSunny && isWarm: ${isSunny && isWarm}\n'
          'isSunny || isWarm: ${isSunny || isWarm}\n'
          '!isSunny: ${!isSunny}\n'
          'isSunny == isWarm: ${isSunny == isWarm}\n'
          'isSwitched: ${isSwitched.toString()}';
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Bool Methods Demo'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: [
            SwitchListTile(
              title: Text('Switch Boolean Value'),
              value: isSwitched,
              onChanged: (value) {
                setState(() {
                  isSwitched = value;
                });
              },
            ),
            ElevatedButton(
              onPressed: _evaluateConditions,
              child: Text('Evaluate Conditions'),
            ),
            SizedBox(height: 16),
            Text(
              'Results:',
              style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
            ),
            SizedBox(height: 8),
            Text(
              result,
              style: TextStyle(fontSize: 16),
            ),
          ],
        ),
      ),
    );
  }
}

В этом примере:

  • Свойство isSwitched используется для отслеживания состояния переключателя (Switch).

  • Кнопка Evaluate Conditions проверяет несколько логических условий и выводит результат, включая работу с методами и операторами bool.

Last updated