قيم الإرجاع
جزء من قسم Fundamentals في رحلة R على Coddy — الدرس 48 من 78.
حتى الآن، كانت دوالنا تطبع المخرجات مباشرة. ولكن في كثير من الأحيان قد ترغب في أن تقوم الدالة بحساب قيمة وإعادتها لتتمكن من استخدامها في مكان آخر في الكود الخاص بك. هنا يأتي دور قيم الإرجاع (return values).
استخدم دالة return() لإرسال قيمة مرة أخرى من دالتك:
add <- function(a, b) {
return(a + b)
}
result <- add(5, 3)
print(result)المخرجات:
[1] 8بدلاً من الطباعة داخل الدالة، نقوم بإرجاع المجموع. يمكن بعد ذلك تخزين القيمة المرجعة في متغير، أو استخدامها في الحسابات، أو تمريرها إلى دوال أخرى.
هذا يجعل الدوال أكثر تنوعاً:
double <- function(x) {
return(x * 2)
}
print(double(5) + double(3))المخرجات:
[1] 16في لغة R، إذا لم تستخدم return()، فإن الدالة تُرجع تلقائياً آخر تعبير تم تقييمه. ومع ذلك، فإن استخدام return() بشكل صريح يجعل الكود الخاص بك أكثر وضوحاً وهو مفيد بشكل خاص عندما تريد الخروج من الدالة مبكراً.
التحدي
سهلأنشئ دالة تسمى calculate_power تأخذ وسيطين: base و exponent. يجب أن تعيد الدالة نتيجة رفع الأساس إلى قوة الأس (باستخدام عامل التشغيل ^).
اقرأ رقمين من المدخلات، وقم بتحويلهما إلى قيم عددية، واستدعِ دالتك. قم بتخزين القيمة المعادة في متغير يسمى result، ثم اطبع result.
على سبيل المثال، إذا كانت المدخلات 2 و 3، يجب أن تكون المخرجات:
[1] 8إذا كانت المدخلات 5 و 2، يجب أن تكون المخرجات:
[1] 25ورقة مرجعية
يمكن للدوال إرجاع القيم باستخدام دالة return(). يتيح لك ذلك تخزين النتيجة في متغير أو استخدامها في عمليات أخرى:
add <- function(a, b) {
return(a + b)
}
result <- add(5, 3)
print(result) # [1] 8يمكن استخدام القيم المرجعة مباشرة في التعبيرات:
double <- function(x) {
return(x * 2)
}
print(double(5) + double(3)) # [1] 16في لغة R، تقوم الدوال تلقائيًا بإرجاع آخر تعبير تم تقييمه إذا لم يتم استخدام return(). ومع ذلك، فإن استخدام return() بشكل صريح يجعل الكود أكثر وضوحًا ويسمح بالخروج المبكر من الدوال.
جرّب بنفسك
# قراءة المدخلات
con <- file("stdin", "r")
base <- as.numeric(suppressWarnings(readLines(con, n = 1)))
exponent <- as.numeric(suppressWarnings(readLines(con, n = 1)))
# مهام: قم بإنشاء دالة تسمى calculate_power تأخذ base و exponent
# وتعيد base مرفوعاً لأس exponent باستخدام المعامل ^
# مهام: استدعِ الدالة الخاصة بك مع قيم المدخلات وقم بتخزين النتيجة في 'result'
# طباعة النتيجة
print(result)يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الثاني
المعاملات المنطقية (AND, OR)المعاملات المنطقية - الجزء الثاني (NOT)مراجعة - المنطق البسيطالمنطق المتجهي - الجزء الأولالمنطق المتجهي - الجزء الثاني2المتغيرات وأنواع البيانات
نوع البيانات الرقمينوع البيانات الصحيحنوع البيانات الحرفينوع البيانات المنطقيالتحقق من أنواع البياناتقواعد التسميةالقيم المفقودة: NAملخص - إنشاء المتغيرات8الحلقات التكرارية
حلقة Forحلقة Whileجملة Breakجملة Next (Continue)مراجعة - المضروب (Factorial)توليد المتتاليات (seq, :)الحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)3المعاملات - الجزء الأول
المعاملات الحسابيةقسمة الأعداد الصحيحة وباقي القسمةمعاملات الإسنادملخص - عمليات رياضية بسيطةمعاملات المقارنة6أساسيات الإدخال والإخراج
طباعة المخرجاتاستخدام Cat للمخرجاتالمخرجات مع المتغيراتقراءة المدخلات باستخدام readline()أساسيات تحويل أنواع البياناتمراجعة - حاسبة العمرمراجعة - صح أم خطأ