جن

جنریک در Gleam

10 تمرین

درباره‌ی جنریک

یک نوع زمانی «نوع عمومی» است که با استفاده از یک «پارامتر نوع» بتواند مقادیری از هر نوع را در خود نگه دارد.

برای مثال، این نوع Box پارامتر نوع a را دارد (که با حروف کوچک نوشته می‌شود).

pub type Box(a) {
  Box(a)
}

پارامتر نوع a یک جای‌نگهدار برای هر نوعی است، بنابراین Box را می‌توان با رشته‌ها، اعداد صحیح یا هر نوع دیگری به کار برد.

Box("Hello, Joe!") // The type is Box(String)

Box(42) // The type is Box(Int)

یک نوع می‌تواند چندین پارامتر نوع داشته باشد که با کاما از هم جدا می‌شوند.

pub type Pair(a, b) {
  Pair(a, b)
}

توابع عمومی

پارامترهای نوع را می‌توان در آرگومان‌های توابع هم به کار برد.

این تابع یک مقدار از نوع a می‌گیرد و تابعی را که یک a می‌گیرد و یک b برمی‌گرداند، دو بار فراخوانی می‌کند.

pub fn twice(value: a, f: fn(a) -> b) -> b {
  f(value)
  f(value)
}
// The type is fn(String, fn(String) -> Nil) -> Nil
twice("Hello, Joe!", io.println)
ویرایش از طریق GitHub این پیوند در پنجره یا زبانه‌ی جدیدی باز می‌شود

جنریک را یاد بگیرید

تمرین کردن قفل شده است

برای تمرین جنریک قفل 3 تمرین دیگر را باز کنید