تفاوت const , final در تعریف ثابت ها

تعداد بازدید ها : 2,823 بازدید
 تفاوت const , final در تعریف ثابت ها

در زبان دارت جهت تعریف ثابت ها از دو عبارت const , final استفاده می شود . ولی در ابتدا باید گفت ثابت ها یعنی چه و این دو با هم چه تفاوتی دارند ؟

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

مقدار ثابت ها پس از تعریف و مقداردهی اولیه ، دیگر قابل تغییر نمی باشد .

تفاوت بین const , final در چیست ؟

در زبان دارت از کلمه کلیدی const جهت تعریف متغییرهای (variable) ثابت استفاده می شود در حالی که از کلمه کلید final جهت تعریف پراپرتی های (property) ثابت استفاده می شود . به عنوان مثال به قطعه کد زیر دقت نمایید :

import 'package:flutter/material.dart';

// ignore: camel_case_types
class myWidget extends StatelessWidget {
  final Widget myTitel;
  myWidget({this.myTitel});

  @override
  Widget build(BuildContext context) {
    return new Container(
      padding: const EdgeInsets.all(5.0),
      child: new Material(
        child: new Row(
          children: <Widget>[
            Icon(Icons.add),
            Expanded(
              child: myTitel,
            ),
            Icon(Icons.arrow_back)
          ],
        ),
      ),
    );
  }
}

همانطور که در مثال بالا مشاهده می کنید ، یک ویجت از نوع stateless ایجاد شده است و در خط ۵ پراپرتی به نام myTitel از نوع ثابت (final) تعریف شده و طبق تعریف به این پراپرتی فقط در متد سازنده کلاس می توان مقدار داد ، لذا در خط ۶ و در متد سازنده کلاس به این پراپرتی مقداردهی شده است .

می خوانم   پروژه : تم WhatsApp

همچنین در خط ۱۱ مقداری که به padding داده شده است از نوع ثابت (const) تعریف شده است تا در طول برنامه به صورت ناخواسته مورد تغییر قرار نگیرد .

4+
محمدمجتبی جوارشکیان

محمدمجتبی جوارشکیان

من محمدمجتبی جوارشکیان ، کارشناس IT و فعال اجتماعی هستم و در حوزه معماری ، طراحی ، تحلیل گری ، مدلسازی و توسعه ی محیط های نرم افزاری فعالیت دارم . بسیار خوشحال می شوم من را از انتقادات ، پیشنهادات و نظرات خود مطلع فرمایید . آدرس ایمیل : info@javareshkian.ir

ارسال یک پاسخ

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

دو × پنج =