پرش به محتوا

استفاده از null Safety در توابع دارت

    Null safety در دارت یکی از ویژگی های جدید اضافه شده به زبان دارت است که به برنامه نویسان کمک می کند تا به راحتی با مقادیر null در برنامه خود کار کنند. با استفاده از این ویژگی می توانید تضمین کنید که مقادیر null به توابع شما پاس داده نمی شوند به این صورت که مقادیری که می خواهید به توابعتان بدهید مطابق با signature توابع شما باشند.

    برای استفاده از Null safety در توابع می توانید از عملگر "?" برای تعریف پارامترها استفاده کنید، به این صورت که اگر پارامتری null باشد برنامه نویس می تواند تعیین کند که باید چه کاری با آن انجام دهد.

    به عنوان مثال، اگر می خواهید یک تابع از نوع String به عنوان ورودی بگیرد، می توانید از عملگر "?" در signature تابع استفاده کنید، به این صورت:

    String myFunction(String? myParameter) {
      if (myParameter != null) {
        return "The value of myParameter is: $myParameter";
      } else {
        return "myParameter is null";
      }
    }
    
    
    

    در مثال قبل اگر myParameter null باشد، تابع به طور پیش فرض "myParameter is null" را برمی گرداند. اما اگر myParameter مقداری داشته باشد، تابع به این شکل عمل می کند که مقدار myParameter را به String اضافه کرده و متن "The value of myParameter is: " را به آن اضافه می کند.

    استفاده از Null safety در توابع، به شما کمک می کند تا برنامه هایی ایمن تر و قابل اعتماد تر ایجاد کنید.

    به علاوه از Null safety در توابع می توانید برای تضمین عدم وجود مقدار null در بازگشتی توابع استفاده کنید. برای این کار می توانید از عملگر "!" استفاده کنید، به این صورت که مطمئن می شوید که تابع همیشه مقداری به عنوان بازگشتی برمی گرداند.

    به عنوان مثال فرض کنید که می خواهید یک تابع داشته باشید که مقداری از نوع int به عنوان بازگشتی برگرداند اما اگر مقداری null باشد باید پیغام خطا به کاربر نشان داده شود. در این صورت می توانید از عملگر "!" در signature تابع استفاده کنید، به این صورت:

    int myFunction() {
      // some code here
      int? myVariable;
      // some code here
      return myVariable!;
    }
    
    

    در مثال قبل ابتدا متغیر myVariable به عنوان یک int? تعریف شده است، به این معنی که مقدار null هم می تواند به عنوان مقدار آن پذیرفته شود. اما در زمان بازگشتی تابع، از عملگر "!" استفاده شده است تا تضمین کند که myVariable همیشه یک مقدار از نوع int دارد در غیر این صورت خطای اجرایی پرتاب خواهد شد.

    استفاده از Null safety در توابع در دارت، باعث می شود تا کد شما بهتر قابل فهم و تعمیر باشد، چرا که شما می توانید با تضمین عدم وجود مقدار null از خطاهای زمان اجرا جلوگیری کنید. همچنین، با استفاده از Null safety می توانید کد شما را به راحتی ارتقا دهید و برای پشتیبانی از ویژگی های جدید زبان دارت، آماده سازی کنید.

    با استفاده از Null safety می توانید کد خود را به صورت کاملاً ایمن از نظر null کردن کردن کد کنید، چرا که Null safety به شما اجازه می دهد تا از مقدار null به عنوان مقدار پیش فرض استفاده کنید و از تشخیص خطاهای احتمالی در زمان اجرا جلوگیری کنید.

    برای نمونه، فرض کنید که یک تابع داریم که یک مقدار رشته ای را به عنوان ورودی دریافت می کند و بررسی می کند که آیا رشته ای که دریافت شده است، حاوی عدد است یا خیر. اگر رشته حاوی عدد باشد، تابع باید آن را به عنوان یک عدد برگرداند، در غیر این صورت، باید مقدار پیش فرض (صفر) را برگرداند. با استفاده از Null safety در این تابع، می توانید از تشخیص خطاهای مربوط به null در زمان اجرا جلوگیری کنید، به این صورت:

    int myFunction(String myString) {
      int myNumber = int.tryParse(myString) ?? 0;
      return myNumber;
    }
    
    

    در مثال بالا ما از تابع tryParse() برای تبدیل رشته به عدد استفاده کرده ایم. اگر تابع tryParse() موفق به تبدیل رشته به عدد شود، مقدار برگشتی از تابع tryParse() را به عنوان مقدار تابع بر می گردانیم. در غیر این صورت، از عملگر ?? برای انتخاب مقدار پیش فرض (صفر) استفاده کرده ایم.

    در نهایت، با استفاده از Null safety در دارت، می توانید کد خود را به صورت ایمن تر و قابل اعتماد تر از نظر null کردن کردن کد کنید. با استفاده از Null safety، می توانید خطاهای زمان اجرای کد را به حداقل برسانید و به راحتی کد قابل تعمیر و ارتقا داشته باشید.

    با استفاده از Null safety، می توانید از پیچیدگی هایی که به دلیل null بودن مقادیر در برنامه های قدیمی به وجود می آمد، خلاص شوید. برای مثال، در برنامه هایی که بر اساس اصول null safety نوشته شده اند، شما نیاز به استفاده از عبارات if-else یا عبارات گرفتن مقدار پیش فرض ندارید، زیرا با استفاده از null safety، هر مقدار null با مقدار پیش فرض جایگزین می شود.

    به عنوان مثال، فرض کنید که می خواهید اطلاعات یک کاربر را به عنوان یک شیء دریافت کنید. در برنامه های قدیمی، شما باید با پیچیدگی هایی مثل اینکه آیا همه مقادیر داده شده به شیء کاربر وجود دارند یا خیر، مواجه شوید. با استفاده از Null safety، می توانید این کار را به راحتی انجام دهید، به این صورت:

    class User {
      String? name;
      int? age;
      String? email;
    }
    
    void getUserData(User user) {
      print(user.name ?? 'No name provided');
      print(user.age ?? 'No age provided');
      print(user.email ?? 'No email provided');
    }
    
    

    در مثال بالا ما یک کلاس کاربر با سه خصوصیت (نام، سن و ایمیل) تعریف کرده ایم. در تابع getUserData()، این کلاس را به عنوان ورودی دریافت می کنیم و سپس خصوصیت های مختلف را چاپ می کنیم. با استفاده از عبارت ?? ، مقدار پیش فرض برای هر خصوصیت را مشخص کرده ایم، در صورتی که مقداری برای آن وجود نداشته باشد.

    استفاده از Null safety در دارت مزایای بسیاری دارد، از جمله افزایش ایمنی و قابلیت تعمیر برنامه افزایش سرعت اجرای برنامه و کاهش هزینه توسعه برنامه.

    استفاده از Null safety در دارت به صورت پیشفرض در نسخه های بعدی زبان، بهبود می یابد و امکانات بیشتری به آن اضافه می شود. با این حال، برای استفاده از این امکانات، شما باید نسخه مناسب دارت را در پروژه خود استفاده کنید و به دقت از قوانین Null safety پیروی کنید.

    یکی از ابزارهای مهمی که با استفاده از آن می توانید از Null safety در دارت بهره ببرید، ابزار Dart Analyzer است. این ابزار قادر است خطاهای Null safety را در کد شما تشخیص دهد و به شما کمک کند تا آن ها را برطرف کنید. برای استفاده از این ابزار، می توانید از دستور زیر استفاده کنید:

    dart analyze
    
    

    با استفاده از ابزار Dart Fix، می توانید خطاهای Null safety را به صورت خودکار برطرف کنید. این ابزار به صورت خودکار به کد شما نگاه می کند و خطاهای Null safety را شناسایی کرده و تغییرات لازم را در کد ایجاد می کند. برای استفاده از این ابزار، می توانید از دستور زیر استفاده کنید:

    dart fix
    
    

    برای استفاده از Null safety در دارت، شما باید با قوانین و روش های استفاده از آن آشنا شوید و به دقت و با دقت از آن ها پیروی کنید. همچنین، با استفاده از ابزارهایی مانند Dart Analyzer و Dart Fix، می توانید به راحتی خطاهای Null safety را شناسایی کنید و به راحتی این خطاها را برطرف کنید.

    Null safety در دارت می تواند به شما کمک کند تا کد خود را بیشتر و قابل اعتماد تر کنید. با استفاده از Null safety، می توانید مشکلاتی که ناشی از استفاده از مقادیر Null در کد شما به وجود می آید را رفع کنید. بنابراین، با استفاده از Null safety می توانید از این مشکلات جلوگیری کنید و کد شما را بهبود بخشید.

    استفاده از Null safety در دارت همچنین می تواند به شما کمک کند تا برنامه هایی که قابلیت انتقال داده بین بخش های مختلف دارند، بهتر و قابل اطمینان تر شوند. با استفاده از Null safety، می توانید از ایجاد مشکلاتی در ارتباط بین اجزای مختلف برنامه جلوگیری کنید.

    در کل، استفاده از Null safety در دارت به شما کمک می کند تا کد شما را بهتر و قابل اطمینان تر کنید. با این حال، برای استفاده بهینه از Null safety، باید به دقت و با دقت از قوانین آن پیروی کنید و از ابزارهایی مانند Dart Analyzer و Dart Fix برای تشخیص و رفع خطاهای Null safety استفاده کنید.

    بهتر است با چند مثال از استفاده از Null safety در دارت آشنا شویم:

    1. مثال اول:

    در این مثال، یک تابع به نام printLength داریم که یک لیست رشته ها به عنوان ورودی دریافت می کند و طول هر رشته را چاپ می کند. با استفاده از Null safety، ما می توانیم اطمینان حاصل کنیم که لیست رشته ها همیشه مقدار دارند و برنامه به خوبی کار خواهد کرد:

    void printLength(List<String>? strings) {
      if (strings != null) {
        for (var str in strings) {
          print(str.length);
        }
      }
    }
    
    
    1. مثال دوم:

    در این مثال، یک کلاس به نام Person با دو ویژگی name و age داریم. با استفاده از Null safety، ما می توانیم مطمئن شویم که هر دو ویژگی همیشه مقدار دارند و برنامه به درستی عمل می کند:

    class Person {
      String name;
      int age;
    
      Person(this.name, this.age);
    }
    
    void main() {
      Person? p;
      // ...
      if (p != null) {
        print(p.name);
      }
    }
    
    
    1. مثال سوم:

    در این مثال، یک تابع به نام checkIfPositive داریم که یک عدد صحیح به عنوان ورودی دریافت می کند و بررسی می کند که آیا آن عدد مثبت است یا خیر. با استفاده از Null safety، ما می توانیم مطمئن شویم که ورودی همیشه مقدار دارد و برنامه به درستی عمل می کند:

    bool checkIfPositive(int? num) {
      return num != null && num > 0;
    }
    
    
    1. مثال چهارم:

    در این مثال، یک تابع به نام getLength داریم که یک رشته به عنوان ورودی دریافت می کند و طول آن را برمیگرداند. با استفاده از Null safety، ما می توانیم از خطراتی که ممکن است در صورت ورود یک رشته null به تابع به وجود آید جلوگیری کنیم:

    int getLength(String? str) {
      return str?.length ?? 0;
    }
    
    


    در مثال قبل ابتدا بررسی می شود که آیا ورودی مقدار دارد یا نه. در صورتی که ورودی مقدار دارد، طول آن را با استفاده از عملگر ?. برای حفاظت از کد در برابر null-related errors برمیگرداند. و در صورتی که ورودی مقدار ندارد، مقدار پیش فرض 0 را برمیگرداند.

    1. مثال پنجم:

    در این مثال، یک کلاس به نام Book با ویژگی های title و author داریم. با استفاده از Null safety، ما می توانیم مطمئن شویم که هر دو ویژگی همیشه مقدار دارند و برنامه به درستی عمل می کند:

    class Book {
      String title;
      String author;
    
      Book(this.title, this.author);
    }
    
    void main() {
      Book? b;
      // ...
      if (b != null) {
        print(b.title);
      }
    }
    
    

    در مثال قبل ابتدا یک شیء از کلاس Book با نام b ایجاد شده است. سپس با استفاده از بررسی if (b != null)، بررسی می شود که آیا b مقدار دارد یا خیر. در صورتی که b مقدار دارد، ویژگی title این شیء چاپ می شود.

    استفاده از Null safety در دارت به شما کمک می کند تا کد خود را بهبود بخشید.

    5/5 - ( 1 امتیاز )

    دیدگاه شما نگاه ما رو عوض میکنه !

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    پشتیبانی آنلاین