ما هو الغرض من مشغل Java's Unary Plus؟
-
26-09-2019 - |
سؤال
يبدو أن مشغل Java's Unary Plus قد جاء من C ، عبر C ++.
int result = +1;
يبدو أن له الآثار التالية:
- قم بإلغاء صناديق المعامل ، إذا كان كائن غلاف
- يعزز معاملته
int
, ، إذا لم يكن بالفعلint
أو أوسع - يعقد قليلاً تحليل التعبيرات الشريرة التي تحتوي على أعداد كبيرة من العلامات المتتالية بالإضافة إلى
يبدو لي أن هناك طرقًا أفضل/أوضح للقيام بكل هذه الأشياء.
في هذا السؤال جدا, فيما يتعلق بمشغل النظير في C#، قال أحدهم إنه "هناك أن يتم تحميله بشكل زائد إذا شعرت بالحاجة".
ومع ذلك ، في جافا ، لا يمكن للمرء أن يحمل التحميل أي المشغل أو العامل. فهل يوجد مشغل Unary Plus في Java فقط لأنه موجود في C ++؟
نصائح أخرى
لا أعرف ، لكنني أظن أنه موجود للتماثل مع مشغل ناقص Unary (الضروري).
إليك عرضًا قصيرًا لما ستفعله Unary Plus لمتغير الشخصية:
private static void method(int i){
System.out.println("int: " + i);
}
private static void method(char c){
System.out.println("char: " + c);
}
public static void main(String[] args) {
Character ch = 'X';
method(ch);
method(+ch);
}
إخراج تشغيل هذا البرنامج هو:
char: X
int: 88
كيف تعمل: Unary + أو - قم بإلغاء صناديق المعامل ، إذا كان كائنًا غلافًا ، ثم قم بترقية معاملهم إلى int ، إن لم يكن بالفعل int أو أوسع. لذلك ، كما نرى ، في حين أن الدعوة الأولى إلى method
سوف تختار char
الحمل الزائد (إلغاء اللاصطناب فقط) ، ستختار المكالمة الثانية int
نسخة من method
. عامل ch
من النوع Character
سيتم نقله إلى method
مثل int
الحجة بسبب تطبيقها Unary Plus.
أظن أنه موجود لأنه في بعض الأحيان تكتب Plus Out يجعل الأمور أكثر وضوحًا. قد ترغب في التأكيد على حقيقة أن بعض الأرقام إيجابية ، على عكس بعض الأرقام السلبية.
أيضًا ، لتوفير مثال حقيقي في العالم حيث يتم استخدامه ، تميل درجات الحرارة الإيجابية إلى أن تكون مسبقة دائمًا مع زائد في بعض أجزاء العالم.
كان أحد أهداف تصميم Java هو أن تكون مألوفًا (لمطور C/C ++) ، لذلك عندما يتعلق الأمر بالمشغلين مثل هذا ، أنا متأكد من أنهم سيتعين عليهم أن يكون لديهم سبب قوي لاستبعاده ، وليس سببًا جيدًا للاحتياج إليه .
العديد من اللغات الأخرى لديها unary زائد. من المعتاد تضمينه ، و Penny Pinching لاستبعاده. إنه فقط بضعة خطوط في برنامج التحويل البرمجي.
يقوم عوامل Unary بما يلي لجافا:
- "+" Unary Plus Operator ؛ يشير إلى القيمة الإيجابية (الأرقام إيجابية بدون هذا ، ومع ذلك)
- "-" Unary Minus Corpator ؛ ينفي التعبير
- ++ مشغل زيادة ؛ يزيد القيمة بمقدار 1
- - عامل انخفاض ؛ يقلل قيمة من 1! عامل تكملة منطقي ؛ يزداد قيمة منطقية
مصدر: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/opsummary.html