Sobes.tech
Middle

რა არის Never ტიპი Dart ენაში?

sobes.tech AI

პასუხი AI-სგან

Never ტიპი, გამოხატულება არასოდეს დასრულდება წარმატებით. იგი გამოიყენება ფუნქციებისა და მეთოდებისთვის, რომლებიც ან გამორიცხავენ გამონაკლისს ან შედიან უსასრულო ციკლში.

გამოყენების მაგალითები:

  • ფუნქცია, რომელიც გამორიცხავს გამონაკლისს:

    Never _throwError(String message) {
      // გამორიცხავს გამონაკლისს, ფუნქცია არასოდეს აბრუნებს მნიშვნელობას
      throw StateError(message);
    }
    
  • ფუნქცია უსასრულო ციკლთან:

    Never _infiniteLoop() {
      // შედის უსასრულო ციკლში, ფუნქცია არასოდეს დასრულდება
      while (true) {
        // რამე გააკეთე
      }
    }
    

Never-ის მთავარი უპირატესობა ის არის, რომ ის ეხმარება კომპილატორს გაიგოს, რომ ასეთი ფუნქციის ან მეთოდის შემდეგ კოდი მიუწვდომელია, რაც საშუალებას იძლევა სტატიკური ანალიზი შესაძლო შეცდომების გამოვლენისათვის, მაგალითად, მიუწვდომელი კოდი და არასწორი შეცდომების მართვა.

სხვადასხვა void-ისგან, რომელიც აღნიშნავს, რომ ფუნქცია არ აბრუნებს მნიშვნელობას (მაგრამ წარმატებით სრულდება), Never ნიშნავს, რომ ფუნქცია არასოდეს დასრულდება ძირითადად.

// ფუნქცია, რომელიც აბრუნებს void-ს (წარმატებით სრულდება, მაგრამ გარეშე მნიშვნელობას)
void doSomething() {
  print('რაღაცას ვაკეთებ');
}

// ფუნქცია, რომელიც აბრუნებს Never-ს (არასოდეს წარმატებით სრულდება)
Never crashAndBurn() {
  throw 'აჰო, არა!';
}

ტიპი Never არის ქვედა ტიპი (bottom type), ანუ მისი ქვესატიპია ნებისმიერი სხვა ტიპის. ეს საშუალებას იძლევა, გამოიყენოს ფუნქცია, რომელიც აბრუნებს Never-ს, იმ ადგილებში, სადაც ნებისმიერი სხვა ტიპი ელოდება.