متغیر یعنی یک فضای نام دار در حافظه که می توانی یک مقدار در آن ذخیره کنی و بعداً به آن دسترسی پیدا کنی یا مقدارش را عوض کنی.
بهترین تشبیه:متغیر مثل یک جعبه است که روی آن برچسب زدی. - برچسب = نام متغیر - جعبه = فضای حافظه - محتویات جعبه = مقداری که در متغیر ذخیره شده است.
هر جعبه می تواند فقط یک نوع داده را در خود نگه دارد (مثل عدد، متن، درست/غلط و...). در زبان دارت، وقتی متغیر می سازی، باید بگویی جعبه برای چه نوع داده ای است.
حالا فرض کن جعبه ای داری که فقط عددهای صحیح (مثل ... ,3- ,0 ,2 ,100) در آن جا می شود. به چنین جعبه ای در دارت می گوییم متغیر با نوع int.
int age = 25; // جعبه ای به اسم age و با مقدار 25.
int score = -10; // اعداد منفی هم مجازند.
int zero = 0; // صفر هم یک عدد صحیح است.
🟢 تغییر مقدار (باز هم فقط عدد صحیح):
int temperature = 30;
temperature = 18; // درست، چون 18 هم صحیح است.
int x = 3.5; // خطا، چون 3.5 اعشاری است (double).
int y = "12"; // خطا، چون متن است (String).
int z = true; // خطا، چون بولین است (bool).
void main() {
int apples = 5;
int oranges = 3;
int totalFruits = apples + oranges;
print(totalFruits); // خروجی: 8
}
خلاصه: متغیر یعنی یک جعبه با برچسب. وقتی از نوع int استفاده می کنیم، آن جعبه فقط اعداد صحیح را قبول می کند و برای شمارش، محاسبات ریاضی، اندیس آرایه و... عالی است.
۱۶
۱۳:۴۸
گاهی لازم داریم عددهایی ذخیره کنیم که اعشاری هستند؛مثل قد، وزن، قیمت، دما و...
در دارت، برای نگهداری اعداد اعشاری از نوع "double" استفاده می کنیم.
مثال:"3.14" ، "18.5" ، "-2.7" ، "0.0"
یعنی هر عددی که نقطه اعشار داشته باشد معمولاً از نوع "double" است.
حالا فرض کن جعبه ای داری که فقط عددهای اعشاری داخل آن جا می شوند.به چنین جعبه ای در دارت می گوییم متغیر با نوع "double".
double price = 19.99;
double height = 175.5;
double temperature = -3.2;
🟢 تغییر مقدار:
double weight = 70.5;
weight = 68.9; // درست، چون مقدار جدید هم اعشاری است.
double x = "12.5"; // خطا، چون متن است (String).
double y = true; // خطا، چون بولین است (bool).
متغیر "double" می تواند عدد صحیح هم نگه دارد،چون عدد صحیح را می شود به صورت اعشاری در نظر گرفت.
double score = 10;
اما برعکس آن درست نیست:
int number = 3.5; // خطا
void main() {
double itemPrice = 12.5;
double tax = 1.8;
double finalPrice = itemPrice + tax;
print(finalPrice); // خروجی: 14.3
}
خلاصه:متغیر "double" مثل یک جعبه برای نگهداری اعداد اعشاری است.وقتی با قیمت، درصد، دما، اندازه و هر عدد غیرصحیح کار می کنیم، "double" بهترین انتخاب است.
۱۵
۹:۳۹
برنامه ای بنویسید که:
۱۴
۱۰:۰۱
گاهی لازم داریم متنها را ذخیره کنیم؛مثل: اسم، پیام، آدرس، توضیحات و...
در دارت، برای نگهداری متن از نوع "String" استفاده می کنیم.
بهترین تشبیه:اگر "int" و "double" جعبههای مخصوص عدد بودند،"String" یک جعبه مخصوص «حروف و متن» است.
مثال:""Ali"" ، ""Hello"" ، ""Dart Programming"" ، ""123""
حالا فرض کن جعبه ای داری که فقط متن داخل آن جا می شود.به چنین جعبه ای در دارت می گوییم متغیر با نوع "String".
String name = "Ali";
String city = "Tehran";
String message = "Welcome to Dart!";
🟢 تغییر مقدار:
String name = "Sara";
name = "Nima"; // درست، چون هنوز یک متن است.
String x = 123; // خطا، چون عدد است (int).
String y = true; // خطا، چون بولین است (bool).
می توان متن و عدد را داخل String نوشت،اما همه چیز تبدیل به «متن» می شود:
String age = "20";
🧩 اتصال متنها (Concatenation):
String firstName = "Ali";
String lastName = "Ahmadi";
String fullName = firstName + " " + lastName;
print(fullName); // خروجی: Ali Ahmadi
void main() {
String name = "Ali";
String message = "Hello";
print(message + " " + name); // خروجی: Hello Ali
}
خلاصه:متغیر "String" مثل یک جعبه مخصوص متن است.برای ذخیره اسم، پیام، توضیح و هر چیزی که شامل حروف باشد از آن استفاده می کنیم.
۱۲
۱۸:۵۹
گاهی لازم داریم فقط بدانیم یک چیز درست است یا غلط؛مثل: آنلاین بودن کاربر، روشن بودن اینترنت، فعال بودن حساب و...
در دارت، برای نگهداری حالت درست/غلط از نوع "bool" استفاده می کنیم.
بهترین تشبیه:
اگر "String" جعبه متن و "int" جعبه عدد بود،"bool" یک کلید روشن/خاموش است.
مثال:true ، false
هیچ مقدار دیگری برای bool معتبر نیست.
حالا فرض کن جعبه ای داری که فقط می تواند «درست یا غلط» را نگه دارد.به چنین جعبه ای در دارت می گوییم متغیر با نوع "bool".
bool isLoggedIn = true;
bool isDarkMode = false;
bool hasInternet = true;
🟢 تغییر مقدار:
bool isStudent = true;
isStudent = false; // درست، چون false هم بولین است.
bool x = 1; // خطا، چون عدد است.
bool y = "true"; // خطا، چون متن است.
bool z = 0; // خطا، چون عدد است.
bool isOnline = true;
اینجا isOnline یعنی کاربر آنلاین است.
void main() {
bool hasPassword = true;
bool isBlocked = false;
print(hasPassword); // خروجی: true
print(isBlocked); // خروجی: false
}
خلاصه:متغیر "bool" مثل یک کلید روشن/خاموش است.برای شرطها، وضعیتها و تصمیمگیری در برنامه استفاده می شود.
۱۲
۹:۵۵
🧩 چالش متغیرها در دارت | تمرین شماره ۲ 
برنامه ای بنویسید که اطلاعات یک دانش آموز را ذخیره و چاپ کند.
━━━━━━━━━━━━━━━
قوانین چالش:
باید از این نوع متغیرها استفاده کنید:
- String- int- double- bool
برای هر نوع داده حداقل یک متغیر بسازید.
همه اطلاعات را با print نمایش دهید.
━━━━━━━━━━━━━━━
اطلاعات مورد نیاز:
نام دانش آموز
سن دانش آموز
معدل دانش آموز
آیا دانش آموز در کلاس آنلاین است یا نه
━━━━━━━━━━━━━━━
چالش اضافه:
سعی کنید ترتیب خروجی دقیقاً این شکلی باشد:
Ali2018.75true
━━━━━━━━━━━━━━━
چالش حرفهایتر:
بعد از چاپ همه اطلاعات،یک متن هم چاپ کنید:
Student Information Completed
━━━━━━━━━━━━━━━
پاسخ تمرین را به آیدی زیر ارسال کنید:@CodeShecan
کانال آموزش برنامه نویسی دارت با کدشکن: @codebreaker_dev
برنامه ای بنویسید که اطلاعات یک دانش آموز را ذخیره و چاپ کند.
━━━━━━━━━━━━━━━
- String- int- double- bool
━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━
سعی کنید ترتیب خروجی دقیقاً این شکلی باشد:
Ali2018.75true
━━━━━━━━━━━━━━━
بعد از چاپ همه اطلاعات،یک متن هم چاپ کنید:
Student Information Completed
━━━━━━━━━━━━━━━
۱۱
۱۸:۴۱
تا اینجا برای ساخت متغیرها، نوع داده را خودمان مشخص می کردیم:
String name = "Sara";
int age = 21;
double price = 49.99;
bool isPremium = true;
اما دارت یک قابلیت جذاب دارد
برای این کار از "var" استفاده می کنیم.
━━━━━━━━━━━━━━━
وقتی مقدار اولیه را به متغیر می دهیم،دارت نوع آن را بررسی می کند و همان نوع را برای متغیر در نظر می گیرد.
var username = "CodeBreaker";
━━━━━━━━━━━━━━━
var followers = 12500;
var appVersion = 2.7;
var isVerified = false;
var courseTitle = "Flutter Masterclass";
- followers → int- appVersion → double- isVerified → bool- courseTitle → String
━━━━━━━━━━━━━━━
🟢 تغییر مقدار متغیر var:
var device = "Laptop";
device = "PC"; // درست ✔️
━━━━━━━━━━━━━━━
var likes = 3000;
likes = "Three Thousand"; // خطا ❌
━━━━━━━━━━━━━━━
بعضی برنامه نویسها فکر می کنند var یعنی «نوع متغیر هر لحظه می تواند عوض شود»
در دارت، var فقط یک بار نوع داده را تشخیص می دهد؛بعد از آن، نوع متغیر ثابت می ماند.
━━━━━━━━━━━━━━━
void main() {
var channelName = "CodeBreaker Dev";
var subscribers = 2500;
var rating = 4.5;
var monetized = true;
print(channelName);
print(subscribers);
print(rating);
print(monetized);
}
━━━━━━━━━━━━━━━
🟢 var باعث می شود کد کوتاهتر و خواناتر شود.🟢 دارت خودش نوع داده را تشخیص می دهد.🟢 اما بعد از تعیین نوع، دیگر نمی توان نوع متغیر را تغییر داد.
۹
۱۷:۰۴
تا اینجا با "var" آشنا شدیم که نوع داده را فقط یک بار تشخیص می دهد و بعد ثابت می ماند.
اما در دارت یک نوع دیگر هم داریم به اسم "dynamic"
━━━━━━━━━━━━━━━
🟡 پویا🟡 در حال تغییر🟡 غیر ثابت
━━━━━━━━━━━━━━━
"dynamic" یعنی:
🟣 متغیری که می تواند در هر لحظه هر نوع داده ای را بپذیرد.
━━━━━━━━━━━━━━━
- 🟢 var → نوع در ابتدا مشخص می شود و ثابت می ماند
━━━━━━━━━━━━━━━
dynamic value = "Hello";
━━━━━━━━━━━━━━━
dynamic value = "Hello";
value = 10;
value = 3.14;
value = true;
- String- int- double- bool
━━━━━━━━━━━━━━━
dynamic data = "User123";
data = 500;
data = false;
data = 12.7;
━━━━━━━━━━━━━━━
چون نوع داده ثابت نیست،احتمال خطا در برنامه بیشتر می شود
━━━━━━━━━━━━━━━
void main() {
dynamic user = "Ali";
print(user);
user = 25;
print(user);
user = true;
print(user);
}
━━━━━━━━━━━━━━━
🟡 دریافت داده از API🟡 داده های نامشخص🟡 پروژه های انعطاف پذیر
━━━━━━━━━━━━━━━
🟡 dynamic یعنی «هر چیزی می تواند باشد»🟡 نوع داده در هر لحظه قابل تغییر است🟡 اما احتمال خطا را افزایش می دهد
━━━━━━━━━━━━━━━
۱۰
۸:۵۲
سلاااااااام به همگی 
روز زیباتون بخیر
اول از همه واقعاً ازتون ممنونم
اینکه تمرینها رو انجام میدید، وقت میذارید و با جدیت آموزشها رو دنبال میکنید، برای منِ کدشکن خیلی ارزشمنده.
دقیقاً همین استمرار و پیگیریه که از یک علاقهمند، یک برنامهنویس واقعی میسازه
━━━━━━━━━━━━━━━
یه نکته خیلی مهم درباره برنامهنویسی:
برنامهنویسهای واقعی کسایی نیستن که هیچوقت اشتباه نمیکنن؛بلکه کساییان که بارها اشتباه میکنن، ارور میگیرن، دوباره تلاش میکنن و در نهایت راهحل رو پیدا میکنن

━━━━━━━━━━━━━━━
اوایل مسیر کاملاً طبیعیه که:
بعضی تمرینها سخت باشن
بعضی مفاهیم قاطی بشن
یا حتی سادهترین کدها ارور بدن 
و این اتفاق نه تنها بد نیست،بلکه بخشی از مسیر حرفهای شدنه
━━━━━━━━━━━━━━━
برنامه نویسی فقط با دیدن آموزش یاد گرفته نمیشه.
برنامه نویسی واقعی با اینها ساخته میشه:
تمرین کردن
تکرار کردن
خراب کردن کدها
درست کردن اشتباهات
و ادامه دادن 
تا وقتی با ارورها درگیر نشی،قدرت تحلیل و حل مسئله تو ساخته نمیشه
━━━━━━━━━━━━━━━
پس از اشتباه کردن نترس.
هر ایدهای که به ذهنت میرسه امتحان کن.کدهاتو تغییر بده، تست کن، خرابش کن و دوباره بساز
مهمترین مهارت یک برنامهنویس، حفظ کردن همهچیز نیست؛بلکه فهمیدن منطق و ساختار کدهاست.
━━━━━━━━━━━━━━━
و یک نکته خیلی مهمتر:
یک برنامهنویس حرفهای باید:
🟢 صبور باشد🟢 دقیق باشد🟢 مقاوم باشد
چون بعضی وقتها ساعتها دنبال مشکلی میگردی که آخرش فقط یک نقطه، یک حرف یا ترتیب اشتباه چند خط کده
━━━━━━━━━━━━━━━
همین مسیرها کمکم ذهن تحلیلی تو رو قوی میکنهو ازت یک توسعهدهنده واقعی میسازه

پس ادامه بده...
اشتباه کن...
یاد بگیر...
تلاش کن...و مطمئن باش هر قدمی که امروز برمیداری، بخشی از آینده حرفهای توئه

━━━━━━━━━━━━━━━
و تا وقتی کدشکن کنارته، هیچ سوالی بیجواب نمیمونه.
@codebreaker_dev
روز زیباتون بخیر
اول از همه واقعاً ازتون ممنونم
دقیقاً همین استمرار و پیگیریه که از یک علاقهمند، یک برنامهنویس واقعی میسازه
━━━━━━━━━━━━━━━
برنامهنویسهای واقعی کسایی نیستن که هیچوقت اشتباه نمیکنن؛بلکه کساییان که بارها اشتباه میکنن، ارور میگیرن، دوباره تلاش میکنن و در نهایت راهحل رو پیدا میکنن
━━━━━━━━━━━━━━━
اوایل مسیر کاملاً طبیعیه که:
و این اتفاق نه تنها بد نیست،بلکه بخشی از مسیر حرفهای شدنه
━━━━━━━━━━━━━━━
برنامه نویسی واقعی با اینها ساخته میشه:
تا وقتی با ارورها درگیر نشی،قدرت تحلیل و حل مسئله تو ساخته نمیشه
━━━━━━━━━━━━━━━
پس از اشتباه کردن نترس.
هر ایدهای که به ذهنت میرسه امتحان کن.کدهاتو تغییر بده، تست کن، خرابش کن و دوباره بساز
مهمترین مهارت یک برنامهنویس، حفظ کردن همهچیز نیست؛بلکه فهمیدن منطق و ساختار کدهاست.
━━━━━━━━━━━━━━━
یک برنامهنویس حرفهای باید:
🟢 صبور باشد🟢 دقیق باشد🟢 مقاوم باشد
چون بعضی وقتها ساعتها دنبال مشکلی میگردی که آخرش فقط یک نقطه، یک حرف یا ترتیب اشتباه چند خط کده
━━━━━━━━━━━━━━━
همین مسیرها کمکم ذهن تحلیلی تو رو قوی میکنهو ازت یک توسعهدهنده واقعی میسازه
پس ادامه بده...
اشتباه کن...
یاد بگیر...
تلاش کن...و مطمئن باش هر قدمی که امروز برمیداری، بخشی از آینده حرفهای توئه
━━━━━━━━━━━━━━━
۱۱
۱۰:۳۸
اگر بعضی وقتها با مفاهیمی روبهرو شدی که اصلاً ازشون چیزی متوجه نمیشی، نگران نباش
این کاملاً طبیعیه!!!
اما دلیلش این نیست که تو ضعیفی
فقط ذهنت هنوز کامل با اون مفهوم آشنا نشده.
چرا؟
چون میخوام ذهن تو از قبل با اون موضوع آشنا بشهتا وقتی در درسهای بعدی کامل یادش میگیری،درکش برات خیلی راحتتر بشه
بعضی مفاهیم:
و این کاملاً طبیعی است.
اگر حتی با صد بار و هزار بار تکرار هم متوجه چیزی نشدی...
فقط کافیه پیام بدی و سوالت رو بپرسی
هیچ سوالی احمقانه نیست،و هیچکس از روز اول حرفهای نبوده
━━━━━━━━━━━━━━━
۱۷
۷:۲۲