0 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)
تفاوت نوع Unit در Scala و void در جاوا چیست؟

2 پاسخ

+1 امتیاز
قبل توسط (1.2هزار امتیاز)
شاید یک تفاوتش این باشه که تو اسکالا می تونی متغیری از جنس Unit داشته باشی

ولی نمی تونی متغیری از جنس void در جاوا داشته باشی.

در کل فکر میکنم Unit یک Wrap از کلاس Void جاوا باشه و فرق زیادی ندارن
قبل توسط (1.2هزار امتیاز)
+1
اگر مشخص بود نمی پرسیدم ، پرسیدن تفاوتش چیه من یک تفاوتش رو گفتم شما هم یکیش رو گفتی ؟!
من بین این دو تضادی نمی بینم دوست من.
قبل توسط (1.9هزار امتیاز)
بنده هیچ تغییری در جواب شما نسبت به سوال ندیدم
موفق باشید
0 امتیاز
قبل توسط (1.1هزار امتیاز)

از نظر مفهومی Unit و void یکی هستند و می خواهند بگویند که تابع مقداری بر نمی گرداند و فقط باید آن را بخاطر side effect که ایجاد می کند فراخوانی کرد.

من خودم تا بحال دو تفاوت دیده ام:

1- کامپایلر Scala می تواند هر نوعی را به Unit تبدیل کند و این در مواردی بدرد می خورد که ما یک procedure نوشته ایم ولی نه از علامت مساوی استفاده کرده ایم و نه نوع بازگشتی procedure را مشخص کرده ایم:

def f(): Unit = "this String gets lost"

def g() { "this String gets lost too" }

در هر دو مثال بالا با توجه به اینکه نوع بازگشتی تابع String است ولی کامپایلر نوع String به Unit تبدیل می کند. تا جایی که من می دونم void این قابلیت را ندارد.

2- عبارت () یک مقدار Unit تولید می کند در حالی که در جاوا برای void مقداری وجود ندارد.

سوالات مشابه

+2 امتیاز
1 پاسخ 1.8هزار بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
1 پاسخ 410 بازدید
0 امتیاز
1 پاسخ 338 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 284 بازدید
0 امتیاز
1 پاسخ 505 بازدید
0 امتیاز
1 پاسخ 435 بازدید
+1 امتیاز
1 پاسخ 581 بازدید
0 امتیاز
1 پاسخ 3.7هزار بازدید
0 امتیاز
1 پاسخ 566 بازدید
0 امتیاز
2 پاسخ 587 بازدید
...