Sobes.tech
Junior

Dart тилиндеги типтөө системи кандай?

sobes.tech AI

AIден жооп

Dart'ta tipleniş sistemi güýçli, statik we dinamik tip kesgitlemäge mümkinçilik berýär.

Esasy düşünjeler:

  • Statik tipleniş: Üýtgeýjileriň tipləri derleme wagtynda barlanýar. Bu, programmanyň işledilmezinden öň ýalňyşlyklary tapmaga kömek edýär.
    // Statik tipleniş mysaly
    int ýaş = 30;
    // ýaş = "otuz"; // Derleme ýalňyşlygy
    
  • Tipleri çaklamasy (Type inference): Derleyiji, berlen baha esaslanyp, awtomatiki ýagdaýda üýtgeýjiniň tipini kesgitleýär.
    // Tipleri çaklamasy mysaly
    var ad = "Alice"; // Derleyiji, buňyň Stringdigini çaklaýar
    
  • Dinamik tip (dynamic): Üýtgeýjä her hili baha saklamaga mümkinçilik berýär. Tipleri barlamak iş wagtynda amala aşyrylýar. dynamic ulanyşyny minimallaşdyrmak maslahat berilýär.
    // Dinamik tip mysaly
    dynamic baha = 10;
    baha = "salam";
    
  • Null howpsuzlygy (Null Safety): Null bahalary bilen baglanyşykly ýalňyşlyklary öňüni almak üçin girizildi. Üýtgeýjiler default ýagdaýda null bolup bilmez, eger açyk görkezilmedik bolsa (?).
    // Null howpsuzlygy mysaly
    String nullBolaIlemez = "null däl";
    // nullBolaIlemez = null; // Derleme ýalňyşlygy
    
    String? nullBolaBilýär = null; // Null bolup biler
    
  • Agyr Null howpsuzlygy: Null däl tiplere degişli operasiýalar NullPointerException hataryna sebäp bolmaz, diňe nullability açyk görkezilse.

Dart'ta tipleniş sistemi, statik tipleniş dilleriniň howpsuzlygy bilen dinamik tipleniş dilleriniň esnekligini deňagramly üpjün edýär.