نمونهٔ کامپوننتها
همهٔ عناصر نگارشی و کامپوننتهای درسها در یک صفحه، برای بازبینی ظاهر سایت پیش از شروع درسها.
در این صفحه
نگارش پایه
این صفحه نشان میدهد متن درسها چطور دیده میشود. متن فارسی با قلم وزیرمتن و فاصلهٔ خطوط راحت نوشته میشود و اصطلاحهای فنی مثل goroutine، slice و interface به انگلیسی میمانند. کد درونخطی مثل append(s, 1) یا len(s) همیشه چپبهراست است، حتی وسط جملهٔ فارسی.
متن میتواند پررنگ باشد و به صفحهٔ آموزش یا به یک منبع بیرونی (پیوند بیرونی) پیوند بدهد. کلیدهای صفحهکلید هم اینطور نمایش داده میشوند: Ctrl + K.
متن ترکیبی فارسی و انگلیسی
دستور go test -race ./... را اجرا کنید. زبانهایی مثل C++ و C# هم شناخته میشوند. فایل .gitignore، پرچم -race و بستهٔ golang.org/x/sync@latest درست و خوانا نمایش داده میشوند، حتی وقتی جمله با یک واژهٔ انگلیسی تمام شود: goroutine.
Go زبانی است که جمله میتواند با نام آن شروع شود و ترتیب واژهها به هم نمیریزد. نسخهٔ 1.27.4، بازهٔ 3 تا 5 goroutine و عبارتهایی مثل CI/CD، net/http و key=value هم درست دیده میشوند.
فهرستها
- در Go هر متغیر یک zero value دارد.
- خطا یک مقدار معمولی است، نه exception.
- ترکیب (composition) جای وراثت را میگیرد.
- کد را بنویسید.
- با
go vetبررسی کنید. - تستها را با
go test -raceاجرا کنید.
نقل قول
Clear is better than clever.
از Go Proverbs
جدول ساده
بلوک کد
بلوک کد عنوان فایل، برچسب زبان، دکمهٔ کپی و برجستهسازی خط دارد. رنگآمیزی در زمان build انجام میشود و هیچ JavaScript اضافهای به مرورگر نمیفرستد.
شمارهٔ خط هم قابل نمایش است:
زبانهای دیگر هم پشتیبانی میشوند:
کد از فایل واقعی مخزن
این بلوک متنش را مستقیم از فایل code/go/go.mod میخواند. درسها کدهایشان را به همین روش از پوشهٔ code میگیرند تا متن درس همیشه با کد تستشده یکی بماند.
مقایسهٔ Go و Python
در صفحهٔ عریض دو کد کنار هم دیده میشوند و در موبایل به شکل دو زبانه.
ترمینال
$ go run .4 6[10 20 30 40]$ go test -race ./...ok example.com/scores 1.013sکادرهای توجه
تصویر و نمودار
تصویرهای مفهومی به شکل SVG اختصاصی ساخته میشوند و با تم روشن و تیره هماهنگ هستند.
نمودارهای جریان با Mermaid رسم میشوند و از تم فعلی پیروی میکنند:
گامها
نصب وابستگیها
همهٔ ابزارها با یک دستور نصب میشوند:
Bash اجرای سایت
سایت در حالت توسعه بالا میآید و با هر تغییر بهروز میشود.
حل تمرین
فایل
exercise.goرا کامل کنید و تستها را اجرا کنید.
تمرین
تمرین: جمع عددهای یک slice
تابعی بنویسید که مجموع عددهای یک slice را برگرداند. برای slice خالی باید صفر برگردد.
کد شروع
تمرین: حذف عنصرهای تکراری
تابعی بنویسید که عنصرهای تکراری یک slice را حذف کند و ترتیب اولین دیدهشدن را نگه دارد.
تمرین: پیادهسازی ring buffer
یک ring buffer با ظرفیت ثابت بسازید که بدون تخصیص حافظهٔ تازه کار کند.
تمرین: تحلیل رشد ظرفیت
با benchmark نشان دهید پیشتخصیص ظرفیت با make چه اثری بر تعداد تخصیصها دارد و نتیجه را با list در Python مقایسه کنید.
آزمون
آزمون
۰ از ۳ پاسخ داده شده۱.مقدار
len(s)برایs := make([]int, 2, 5)چیست؟۲.متغیر
var count intکه مقداردهی نشده چه مقداری دارد؟۳.یک نوع در Go چطور یک interface را پیادهسازی میکند؟