Оператори порівняння у Flutter (Dart): Просте пояснення з прикладами

Автор Dornos, Квт. 10, 2025, 01:08 PM

« попередня та - наступна тема »

Dornos


У розробці додатків за допомогою Flutter, яка базується на мові програмування Dart, оператори порівняння відіграють ключову роль у створенні логіки програми. Ці оператори дозволяють порівнювати значення змінних, чисел, рядків чи інших типів даних, щоб приймати рішення в коді. У цій статті ми розглянемо основні оператори порівняння в Dart, надамо оригінальні приклади коду та додамо розділ із поширеними запитаннями (FAQs). Все це — українською мовою для вашої зручності!

Що таке оператори порівняння?
Оператори порівняння використовуються для порівняння двох значень. Результатом такого порівняння завжди є логічне значення: true (істина) або false (хибність). У Dart є шість основних операторів порівняння:

  • == (дорівнює)
  • != (не дорівнює)
  • > (більше)
  • < (менше)
  • >= (більше або дорівнює)
  • <= (менше або дорівнює)

Ці оператори можна використовувати з різними типами даних, такими як числа, рядки чи навіть об'єкти (за умови правильного визначення порівняння).

Приклади коду
1. Перевірка рівності (==) та нерівності (!=)
void main() {
  int age1 = 25;
  int age2 = 30;

  bool isEqual = age1 == age2;
  bool isNotEqual = age1 != age2;

  print('Чи рівні ages? $isEqual'); // Виведе: Чи рівні ages? false
  print('Чи не рівні ages? $isNotEqual'); // Виведе: Чи не рівні ages? true
}


2. Порівняння чисел (> та <)
void main() {
  double temperature = 18.5;
  double freezingPoint = 0.0;

  bool isWarm = temperature > freezingPoint;
  bool isCold = temperature < freezingPoint;

  print('Чи тепло? $isWarm'); // Виведе: Чи тепло? true
  print('Чи холодно? $isCold'); // Виведе: Чи холодно? false
}


3. Використання >= та <=
void main() {
  int score = 85;
  int passingScore = 60;

  bool hasPassed = score >= passingScore;
  bool hasFailed = score <= passingScore;

  print('Чи склав іспит? $hasPassed'); // Виведе: Чи склав іспит? true
  print('Чи провалив іспит? $hasFailed'); // Виведе: Чи провалив іспит? false
}


4. Порівняння рядків
void main() {
  String userInput = 'привіт';
  String expectedInput = 'Привіт';

  bool isSame = userInput == expectedInput;
  bool isDifferent = userInput != expectedInput;

  print('Чи однакові рядки? $isSame'); // Виведе: Чи однакові рядки? false
  print('Чи різні рядки? $isDifferent'); // Виведе: Чи різні рядки? true
}


5. Практичний приклад у Flutter
Цей приклад показує, як використати оператори порівняння у Flutter для відображення умовного тексту:
import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    int userPoints = 150;
    int requiredPoints = 100;

    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Перевірка балів')),
        body: Center(
          child: Text(
            userPoints >= requiredPoints
                ? 'Вітаємо! Ви досягли мети!'
                : 'Потрібно більше балів.',
            style: TextStyle(fontSize: 20),
          ),
        ),
      ),
    );
  }
}

У цьому коді текст змінюється залежно від того, чи досяг користувач необхідної кількості балів.

FAQs: Часті запитання про оператори порівняння в Dart
  • Чим відрізняється == від =?
     Оператор = — це оператор присвоєння, який встановлює значення змінної. Наприклад, x = 5. Оператор == перевіряє, чи рівні два значення. Наприклад, x == 5 повертає true або false.
  • Чи можна порівнювати об'єкти за допомогою ==?
     За замовчуванням == порівнює, чи два об'єкти є одним і тим самим екземпляром. Якщо ви хочете порівняти значення об'єктів, потрібно перевизначити метод == у вашому класі. Наприклад:

    class Person {
      String name;
      Person(this.name);
      @override
      bool operator ==(Object other) => other is Person && name == other.name;
    }
  • Чи чутливі оператори порівняння до регістру при роботі з рядками?
     Так, оператор == чутливий до регістру. Наприклад, "Привіт" == "привіт" поверне false. Для порівняння без урахування регістру можна використовувати toLowerCase() або toUpperCase():

    String str1 = 'Привіт';
    String str2 = 'привіт';
    print(str1.toLowerCase() == str2.toLowerCase()); // Виведе: true
  • Як порівнювати числа з плаваючою комою?
     Через особливості чисел із плаваючою комою (наприклад, 0.1 + 0.2 != 0.3), краще уникати прямого порівняння з ==. Замість цього використовуйте різницю з допустимою похибкою:

    double a = 0.1 + 0.2;
    double b = 0.3;
    bool isCloseEnough = (a - b).abs() < 0.0001;
    print(isCloseEnough); // Виведе: true
  • Чи можна комбінувати оператори порівняння з логічними операторами?
     Так, оператори порівняння часто комбінуються з логічними операторами (&&, ||, !) для створення складніших умов:

    int age = 20;
    bool canVote = age >= 18 && age <= 120;
    print(canVote); // Виведе: true

Висновок
Оператори порівняння в Dart — це основа для створення логіки у ваших Flutter-додатках. Вони прості у використанні, але водночас дуже потужні, особливо коли комбінуються з умовними конструкціями чи віджетами Flutter. Сподіваємося, що наведені приклади допоможуть вам краще зрозуміти ці оператори. Якщо у вас є власні ідеї чи запитання щодо використання операторів порівняння, діліться ними!