أحيانًا عندما تأخذ دالة وسائط كثيرة، قد يصعب تذكّر الترتيب الذي ينبغي تمريرها به. ولتحسين قابلية القراءة، تسمح Gleam بتسمية الوسائط باسم.
لتسمية وسيط، اكتب اسم التسمية قبل اسم الوسيط، مفصولًا بمسافة.
pub fn replace(
in string: String,
each target: String,
with replacement: String
) -> String {
// ...
}
عند استدعاء دالة ذات وسائط مُسمّاة، يمكن تمرير الوسائط بأي ترتيب. وكل من هذه الاستدعاءات لـ replace متكافئة:
replace(in: "🍔🍔🍔", each: "🍔", with: "🍕")
replace(each: "🍔", in: "🍔🍔🍔", with: "🍕")
replace(with: "🍕", each: "🍔", in: "🍔🍔🍔")
التسميات اختيارية دائمًا. وحتى لو كانت للدالة وسائط مُسمّاة، فيمكن استدعاؤها بدون تسميات.
replace("🍔🍔🍔", "🍔", "🍕")
أنت مدير مطعم فاخر يمتلك قبو نبيذ واسعًا. كثير من عملائك من عشّاق النبيذ المتطلبين. العثور على زجاجة النبيذ المناسبة لعميل بعينه ليس مهمة سهلة.
وبصفتك صاحب مطعم ملمًّا بالتقنية، قررت تسريع عملية اختيار النبيذ عبر كتابة تطبيق يتيح للضيوف تصفية النبيذ حسب تفضيلاتهم.
تُمثَّل زجاجة النبيذ بنوع مخصص، ويُخزَّن النبيذ في مصفوفة.
[
Wine("Chardonnay", 2015, "Italy", White),
Wine("Pinot grigio", 2017, "Germany", White),
Wine("Pinot noir", 2016, "France", Red),
Wine("Dornfelder", 2018, "Germany", Rose)
]
نفّذ الدالة wines_of_color. يجب أن تأخذ مصفوفة من النبيذ وتُرجع كل النبيذ ذي اللون المعيّن.
wines_of_color(
[
Wine("Chardonnay", 2015, "Italy", White),
Wine("Pinot grigio", 2017, "Germany", White),
Wine("Pinot noir", 2016, "France", Red),
Wine("Dornfelder", 2018, "Germany", Rose)
],
color: White
)
// -> [
// Wine("Chardonnay", 2015, "Italy", White),
// Wine("Pinot grigio", 2017, "Germany", White),
// ]
نفّذ الدالة wines_from_country. يجب أن تأخذ مصفوفة من النبيذ وتُرجع كل النبيذ القادم من بلد معيّن.
wines_from_country(
[
Wine("Chardonnay", 2015, "Italy", White),
Wine("Pinot grigio", 2017, "Germany", White),
Wine("Pinot noir", 2016, "France", Red),
Wine("Dornfelder", 2018, "Germany", Rose)
],
country: "Germany"
)
// -> [
// Wine("Dornfelder", 2018, "Germany", Rose)
// ]
نفّذ الدالة filter. يجب أن تأخذ مصفوفة من النبيذ ولونًا وبلدًا، وتُرجع كل النبيذ ذي اللون المعيّن المعبأ في البلد المعيّن.
filter(
[
Wine("Chardonnay", 2015, "Italy", White),
Wine("Pinot grigio", 2017, "Germany", White),
Wine("Pinot noir", 2016, "France", Red),
Wine("Dornfelder", 2018, "Germany", Rose)
],
color: White
country: "Italy"
)
// -> [
// Wine("Chardonnay", 2015, "Italy", White),
// ]
سجّل في Exercism لتتعلّم وتتقن Gleam عبر 33 مفهومًا122 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.