وسائط الدالة
جزء من قسم Fundamentals في رحلة R على Coddy — الدرس 47 من 78.
تصبح الدوال أكثر قوة عندما يمكنها قبول المدخلات. تسمح لك الوسائط (تسمى أيضًا المعاملات) بتمرير القيم إلى الدالة، مما يجعلها مرنة وقابلة لإعادة الاستخدام في مواقف مختلفة.
لإضافة وسائط (arguments)، ضعها داخل الأقواس عند تعريف الدالة:
greet <- function(name) {
print(paste("Hello,", name))
}
greet("Alice")
greet("Bob")المخرجات:
[1] "Hello, Alice"
[1] "Hello, Bob"تعمل الدالة الآن مع أي اسم تقدمه. عندما تستدعي greet("Alice")، يتم تعيين القيمة "Alice" إلى المعلمة name داخل الدالة.
يمكنك تعريف وسائط متعددة عن طريق الفصل بينها بفاصلات:
add <- function(a, b) {
print(a + b)
}
add(5, 3)
add(10, 20)المخرجات:
[1] 8
[1] 30عند استدعاء دالة تحتوي على وسائط متعددة، يتم مطابقة القيم مع المعلمات بالترتيب. تذهب القيمة الأولى إلى المعلمة الأولى، والقيمة الثانية إلى المعلمة الثانية، وهكذا.
التحدي
سهلقم بإنشاء دالة تسمى calculate_area تأخذ وسيطين: length و width. يجب أن تقوم الدالة بطباعة المساحة (الطول مضروباً في العرض) باستخدام print().
اقرأ رقمين من المدخلات، وقم بتحويلهما إلى قيم عددية، ثم استدعِ دالتك باستخدام هذه القيم.
على سبيل المثال، إذا كانت المدخلات هي 5 و 3، يجب أن تكون النتيجة:
[1] 15إذا كانت المدخلات هي 7 و 4، يجب أن تكون النتيجة:
[1] 28ورقة مرجعية
يمكن للوظائف قبول الوسائط (arguments) لجعلها مرنة وقابلة لإعادة الاستخدام. توضع الوسائط داخل الأقواس عند تعريف الوظيفة:
greet <- function(name) {
print(paste("Hello,", name))
}
greet("Alice") # [1] "Hello, Alice"عند استدعاء الوظيفة، يتم تعيين القيمة التي قمت بتمريرها إلى المعلمة (parameter) داخل الوظيفة.
يمكنك تعريف وسائط متعددة عن طريق الفصل بينها بفاصلات:
add <- function(a, b) {
print(a + b)
}
add(5, 3) # [1] 8عند استدعاء وظيفة تحتوي على وسائط متعددة، يتم مطابقة القيم مع المعلمات حسب الترتيب.
جرّب بنفسك
# قراءة المدخلات
con <- file("stdin", "r")
length <- as.numeric(suppressWarnings(readLines(con, n = 1)))
width <- as.numeric(suppressWarnings(readLines(con, n = 1)))
close(con)
# TODO: قم بإنشاء دالة تسمى calculate_area تأخذ الطول والعرض
# وتطبع المساحة (الطول * العرض)
# استدعِ الدالة الخاصة بك مع قيم المدخلاتيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الثاني
المعاملات المنطقية (AND, OR)المعاملات المنطقية - الجزء الثاني (NOT)مراجعة - المنطق البسيطالمنطق المتجهي - الجزء الأولالمنطق المتجهي - الجزء الثاني2المتغيرات وأنواع البيانات
نوع البيانات الرقمينوع البيانات الصحيحنوع البيانات الحرفينوع البيانات المنطقيالتحقق من أنواع البياناتقواعد التسميةالقيم المفقودة: NAملخص - إنشاء المتغيرات8الحلقات التكرارية
حلقة Forحلقة Whileجملة Breakجملة Next (Continue)مراجعة - المضروب (Factorial)توليد المتتاليات (seq, :)الحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)3المعاملات - الجزء الأول
المعاملات الحسابيةقسمة الأعداد الصحيحة وباقي القسمةمعاملات الإسنادملخص - عمليات رياضية بسيطةمعاملات المقارنة6أساسيات الإدخال والإخراج
طباعة المخرجاتاستخدام Cat للمخرجاتالمخرجات مع المتغيراتقراءة المدخلات باستخدام readline()أساسيات تحويل أنواع البياناتمراجعة - حاسبة العمرمراجعة - صح أم خطأ