جنریکها (generics)
بخشی از دوره Go
تابعی مینویسید که بزرگترین عدد یک اسلایس از int را پیدا کند. بعد به همان چیز برای float64 نیاز پیدا میکنید، پس کپیاش میکنید و دو کلمه را عوض میکنید. بعد نوبت string میرسد. حالا سه تابع تقریباً یکسان دارید و هر بار که باگی را در یکی درست کنید، باید یادتان بماند آن دو تای دیگر هم هستند.
Go در بیشتر عمرش پاسخ تمیزی برای این وضع نداشت. یا تابع را تکرار میکردید، یا سراغ interface{} میرفتید که هر چیزی را میپذیرفت و در عوض کل بررسی نوع را کنار میگذاشت، طوری که کامپایلر دیگر نمیتوانست به شما بگوید اسلایسی از جنس اشتباه پاس دادهاید. تکرار یا کوری، یکی را انتخاب کنید.
میخواهی Go جنریکها (generics) را در یک محیط واقعی یاد بگیری؟
روی دکمه زیر بزن تا یک ماشین لینوکس با Go آماده دریافت کنی و جنریکها (generics) را بهصورت عملی با یک مربی هوشمند که کدت را میشناسد تمرین کنی.
شروع این درسجنریکها (generics)چه چیزهایی یاد میگیری
- Type parameters with [T any]
- Constraints
- Comparable
- Tilde approximation ~int
- Generic Map and Filter
- When generics help, when they do not
این درس را به زبان خودت بخوان
همهٔ درسهای این دوره
20 درس- 1سلام، گو25 دقیقه
- 2متغیرها و انواع داده25 دقیقه
- 3کنترل جریان: if و for30 دقیقه
- 4توابع30 دقیقه
- 5اسلایسها (slices) و مپها (maps)35 دقیقه
- 6استراکتها (structs) و پوینترها (pointers)35 دقیقه
- 7متدها (methods) و اینترفیسها (interfaces)35 دقیقه
- 8مدیریت خطا35 دقیقه
- 9ماژولها (modules) و ساختار پروژه35 دقیقه
- 10پروژه نهایی CLI کوچک40 دقیقه
- 11گشتی در کتابخانه استاندارد40 دقیقه
- 12آزمایش و بنچمارکها (benchmarks)40 دقیقه
- 13گوروتینها (goroutines) و کانالها (channels)40 دقیقه
- 14الگوهای همزمانی45 دقیقه
- 15جنریکها (generics)35 دقیقه
- 16سرورهای HTTP45 دقیقه
- 17پایگاههای داده با database/sql45 دقیقه
- 18عملکرد و پروفایلسازی40 دقیقه
- 19الگوهای طراحی در Go40 دقیقه
- 20استقرار و محیط تولید45 دقیقه
