ما هي نية وضع قيم الإرجاع بين قوسين في C/Objective-C؟
-
29-09-2019 - |
سؤال
لقد صادفت بعض التعليمات البرمجية التي تحيط بقيمة الإرجاع من طريقة/وظيفة بين قوسين.
ماذا يفعل ذلك؟
التقطت الكود الذي رأيته صورة ، وتغيير حجمها ثم أعادتها.
- (UIImage *)resizeImage:(UIImage *)image
{
//
// some fascinating, but irrelevant, resizing code here
//
return (image);
}
المحلول
على الأقل فيما يتعلق بـ C ، فإنه لا يوجد فرق. Parens ليست ضرورية ، لكنها لا تغير معنى بيان العودة. القواعد النحوية لبيان العودة
إحالة الإرجاع: إرجاع التعبيريختار، يقرر ;
وواحد من إنتاجات التعبير غير الطرفي هو أقواس التعبير, ، أو ( التعبير ).
نصائح أخرى
لا شئ. إنه عديم الفائدة تمامًا.
يتجاوز الأسبقية للمشغل ، ومع ذلك لن يكون لأي مشغل الأسبقية أقل من "العودة".
الإجابة المختصرة هي ببساطة أنه خيار نمط ، مثل استخدام "/ * تعليقات */" بدلاً من "// التعليقات"
في حالتك ، فإنه يعادل كتابة العودة دون الأقواس. عادة ، يمكنك استخدام الأقواس لنوع الصب ، أو إذا كنت ترغب في التعامل مع تعبير ككتلة مستقلة.
فمثلا:
// This is an untyped pointer to an instance of SomeClass
void* ptr = instance;
// In order to let the compiler know that ptr is an instance of SomeClass
// we cast it, and then we put the cast in parentheses to be able to access
// a property on the result of the cast.
return ((SomeClass *)ptr).someproperty;
لا تنتمي إلى StackOverflow