گاهی وقتی یک تابع آرگومانهای زیادی میگیرد، به خاطر سپردن ترتیبی که باید در آن داده شوند میتواند دشوار باشد. برای کمک به خوانایی، 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),
// ]