تفاوت بین دستور print
و return
در توابع در دارت به شرح زیر است:
print
: این دستور برای نمایش خروجی به کاربر استفاده می شود. به عبارت دیگر، وقتی شما از دستور print
استفاده می کنید، مقدار یک عبارت را در خروجی چاپ می کنید. با این حال، دستور print
مقداری را در قالب یک رشته چاپ می کند و برای استفاده در بخش های دیگر برنامه، مقدار خروجی را بر نمی گرداند.
return
: این دستور برای برگرداندن مقداری از یک تابع به بخش های دیگر از برنامه استفاده می شود. به عبارت دیگر، وقتی شما از دستور return
استفاده می کنید، مقدار یک عبارت را به بخشی از برنامه که تابع را صدا می زند، بر می گردانید. این مقدار می تواند یک مقدار عددی، رشته ای، بولین، لیست، دیکشنری و … باشد.
برای مثال، فرض کنید که شما یک تابع به نام add_numbers
ایجاد کرده اید که دو عدد را به عنوان ورودی می گیرد و جمع آن ها را با استفاده از دستور return
برمی گرداند. با این کار، شما می توانید این مقدار را در بخش های دیگر از برنامه استفاده کنید و به جای چاپ آن با دستور print
، از آن برای محاسبه یا استفاده در بخش های دیگر برنامه استفاده کنید.
int add_numbers(int a, int b) {
return a + b;
}
void main() {
int result = add_numbers(2, 3);
print(result); // 5
}
در این مثال، تابع add_numbers
دو عدد را جمع می کند و مقدار حاصل را با استفاده از دستور return
برمی گرداند. سپس، مقدار برگشتی تابع در متغیر result
ذخیره میشود
در ادامه می توانید یک مثال دیگر را برای بررسی تفاوت بین print
و return
در دارت ببینید:
// تابع add_numbers با استفاده از دستور print
void add_numbers(int a, int b) {
print(a + b);
}
void main() {
add_numbers(2, 3); // خروجی: 5
int result = add_numbers(4, 5); // خروجی: 9
print(result); // خروجی: null
}
در این مثال، تابع add_numbers
دو عدد را جمع کرده و مقدار حاصل را با استفاده از دستور print
چاپ می کند. در بخش main
، ابتدا add_numbers
با ورودی 2
و 3
فراخوانی می شود و خروجی آن به صورت 5
نمایش داده می شود. در خط بعد، تابع add_numbers
با ورودی 4
و 5
فراخوانی می شود و مقدار برگشتی آن در متغیر result
ذخیره می شود. اما برای چاپ مقدار result
، به دلیل استفاده از دستور print
در تابع add_numbers
، خروجی تابع add_numbers
هیچ مقداری را به result
بر نمی گرداند و مقدار null
در خروجی چاپ می شود.
بنابراین، برای استفاده از مقدار برگشتی یک تابع در بخش های دیگر از برنامه، بهتر است از دستور return
استفاده کنید. در مقابل، دستور print
برای نمایش خروجی به کاربر مفید است.
هر تابعی که مقدار برگشتی نداشته باشد، به صورت پیشفرض مقدار null
را برمیگرداند. بنابراین، در صورت استفاده از دستور print
در تابع و نداشتن دستور return
، مقدار null
به صورت پیشفرض برگشت داده میشود.
به عنوان مثال، فرض کنید که میخواهیم یک تابع ساده بنویسیم که یک رشته را به صورت وارونه چاپ کند. میتوانیم از دستور print
برای چاپ رشته استفاده کنیم، اما به دلیل این که نیازی به مقدار برگشتی نداریم، میتوانیم از دستور void
برای مشخص کردن این موضوع استفاده کنیم.
// تابع برای چاپ وارونه یک رشته
void print_reverse_string(String str) {
for (int i = str.length - 1; i >= 0; i--) {
print(str[i]);
}
}
void main() {
print_reverse_string("Hello World!"); // خروجی: !dlroW olleH
}
در این مثال، تابع print_reverse_string
یک رشته را به صورت وارونه چاپ میکند. هیچ مقداری برای این تابع برگشت داده نمیشود، بنابراین از دستور void
برای مشخص کردن این موضوع استفاده شده است.
با استفاده از این مثال، تفاوت بین print
و return
در دارت به وضوح مشخص میشود. دستور print
برای چاپ خروجی در کنسول به کار میرود و هیچ مقداری برای استفاده در بخشهای دیگر برنامه برنمیگرداند. به عبارت دیگر، دستور print
فقط یک عملیات صفر و یا بیشتر بر روی دادههای ورودی انجام میدهد. در مقابل، دستور return
به منظور برگشت دادن مقدار به بخشهای دیگر برنامه است
برای مثال، فرض کنید میخواهیم یک تابع ساده بنویسیم که مجموع دو عدد را برگرداند. در این حالت، از دستور return
برای برگشت مقدار مجموع دو عدد استفاده میکنیم.
// تابع برای محاسبه مجموع دو عدد
int sum(int num1, int num2) {
return num1 + num2;
}
void main() {
int result = sum(5, 3);
print(result); // خروجی: 8
}
در این مثال، تابع sum
دو عدد را به عنوان ورودی دریافت میکند و مجموع آنها را به عنوان خروجی با استفاده از دستور return
برمیگرداند. در بخش main
، مقدار بازگشتی تابع sum
در متغیر result
ذخیره میشود و با استفاده از دستور print
نمایش داده میشود.
با استفاده از این مثالها، میتوان تفاوت بین print
و return
در دارت را به خوبی درک کرد. در کلیت، دستور print
برای چاپ خروجی در کنسول استفاده میشود و دستور return
برای برگشت دادن مقدار به بخشهای دیگر برنامه استفاده میشود. با توجه به نیاز برنامه، میتوانید از هر یک از این دو دستور به طور مناسب استفاده کنید.