خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

همه چیزهایی که برای شروع نوشتن باید بدانید برو

با این پرایمر در زبان Go به سرعت برسید.

Go یکی از زبان های برنامه نویسی مدرن است که در بسیاری از نظرسنجی ها به عنوان زبان ترجیحی توسعه دهندگان مورد توجه قرار گرفته است. Go دارای یک نحو ساده برای استفاده و درک در حالی که عملکرد سطح بالایی را ارائه می دهد.

می‌توانید از Go برای ساخت برنامه‌های مختلف، از برنامه‌های وب گرفته تا برنامه‌های خط فرمان، سرویس‌های ابری و شبکه استفاده کنید. اکوسیستم بسته های شخص ثالث Go از بسیاری موارد استفاده دیگر پشتیبانی می کند.

Go دارای اکثر ویژگی هایی است که در یک زبان مدرن انتظار دارید: ژنریک، همزمانی، استنتاج نوع، جمع آوری زباله و بسیاری موارد دیگر.

شروع با Go

به صفحه اصلی بروید

می توانید Go را روی اکثر سیستم عامل ها اجرا کنید. به صفحه نصب بروید و نسخه Go ترجیحی را برای سیستم عامل خود دانلود کنید.

پس از دانلود و نصب Go، می توانید شروع به نوشتن و اجرای کد Go در فایل هایی با پسوند فایل .go کنید.

متوجه خواهید شد که Go بیشتر ویژگی ها و بسیاری از عملکردهای زبان های برنامه نویسی دیگر را دارد. اگر تجربه برنامه نویسی قبلی دارید، باید Go straightforward را پیدا کنید.

متغیرها در Go

Go در سطح بنیادی کاملاً گویا است. دو روش برای تعریف متغیرها در Go وجود دارد. می توانید از کلمه کلیدی var برای اعلام متغیرهای انواع مختلف داده استفاده کنید. پس از تعیین شناسه، باید نوع داده متغیر را تنظیم کنید.

var a string
var b int
var c any
 
var age string = "five years old"
var age = 5// equivalent to var age int = 5
fmt.Println(age)

اگر از نوع داده متغیر مطمئن نیستید، می توانید از هر کدام به عنوان نوع داده استفاده کنید.

شما همچنین می توانید با کلمه کلیدی const ثابت ها را به روشی مشابه با اعلان متغیرها اعلام کنید.

const age = "five years old"

تغییر دادن ثابت ها پس از اعلام آنها غیرممکن است.

Go یک راه جایگزین برای اعلام متغیرها در توابع ارائه می دهد. به استفاده از دو نقطه قبل از علامت مساوی توجه کنید:

funcmain() {
    age := "five years old"// equivalent to var age = "five years old"
}

شرایط در Go

Go نیز برای تصمیم گیری در برنامه ها شرط دارد. می توانید از دستور if و else در کد خود برای مدیریت تصمیمات استفاده کنید.

مطلب مرتبط:   نحوه ایجاد یک سبد خرید در Next.js با Context و useReducer

در اینجا یک مثال اگر بیان شده است که دو عدد صحیح را برای برابری مقایسه می کند:

var a int = 12
 
if a == 12 {
    fmt.Println("a equals twelve")
}

شما فقط می توانید بعد از تعیین یک دستور if از دستورات else استفاده کنید و بعد از بسته شدن بلوک if باید بلوک else را مشخص کنید:

var a int = 12
 
if a == 12 {
    fmt.Println("a equals twelve")
} else {
    fmt.Println("a does not equal twelve")
}

بلوک else فقط زمانی اجرا می شود که دستور if به نادرست ارزیابی شود. Go عبارات else-if را ارائه نمی دهد، اما می توانید از دستورهای switch برای دستورات شرطی پیچیده استفاده کنید.

در اینجا آناتومی دستور سوئیچ در Go آمده است.

age := 7
    switch age {
    case1:
        fmt.Println("one")
    case2:
        fmt.Println("two")
    case3:
        fmt.Println("three")
    default:
        fmt.Println("zero")
}

می توانید با کلیدواژه switch دستورات سوئیچ ایجاد کنید و پس از آن می توانید موارد مختلف را با کلمه کلیدی case مشخص کنید. شما می توانید با استفاده از یک کلمه کلیدی پیش فرض، حالت پیش فرض را مدیریت کنید.

برای Loops in Go

Go حلقه‌های for-loop را برای کارهای تکراری فراهم می‌کند، و برخلاف اکثر زبان‌ها، حلقه while یا do-while در Go وجود ندارد.

شما می توانید از حلقه for-loop محبوب C-style یا محدوده for-loop که ساختارهای داده خاصی پشتیبانی می کنند استفاده کنید.

در اینجا مثالی از استفاده از حلقه C-style برای یک برنامه Go آورده شده است:

funcprinter() {
    for i := 0; i <= 3; i++ {
        fmt.Println(i)
    }
}

می‌توانید از حلقه برای حلقه داخلی Go در ساختارهای داده ترکیبی مانند برش‌ها، نقشه‌ها و آرایه‌ها استفاده کنید. تابع range هنگام عبور از ساختار داده، شاخص و عنصر ایندکس را برمی گرداند.

for index, value := range dataStructure {
}

آرایه ها در Go

آرایه ها یکی از انواع داده های مرکب در Go هستند. آرایه های Go مشابه آرایه های سبک C هستند و طول مشخصی در اعلان و نمونه سازی دارند.

در اینجا چگونه می توانید آرایه ها را در Go اعلام کنید:

var arr [5]string

arr := [7]int{0, 1, 2, 3, 4, 5, 6}

شما می توانید از نمایه سازی برای دسترسی، تخصیص و به روز رسانی عناصر در موقعیتی از آرایه استفاده کنید:

arr[3] = "three"

کد بالا رشته را به عنوان چهارمین ورودی متغیر آرایه به روز می کند یا درج می کند.

مطلب مرتبط:   نحوه ایجاد تصاویر کارآمد داکر پایتون

Slices in Go

Go برش هایی را به عنوان جایگزینی برای آرایه ها برای برخورد با داده هایی با طول نامحدود ارائه می دهد. برش ها شبیه آرایه ها هستند، با این تفاوت که می توانید طول برش ها را تغییر دهید.

برای ایجاد یک برش باید از تابع ساخت داخلی استفاده کنید. نوع داده و طول اولیه برش را به تابع make ارسال کنید.

slice := make([]string, 9)
slice[2] = "two"

می توانید از تابع append برای درج عناصر در برش ها استفاده کنید. به طور پیش فرض، تابع append عناصر را در انتهای برش درج می کند.

slice = append(slice, "ten")

از آنجایی که Go یک آرایه جدید در هر عملیات الحاقی ایجاد می‌کند، ممکن است کار با عملیات افزودن بر روی برش‌ها گران باشد.

Maps in Go

Maps نوع داده داخلی (جفت کلید-مقدار) در Go است. می توانید از تابع make برای ایجاد یک نقشه یا یک اعلان ساده استفاده کنید که در آن باید نقشه را نمونه برداری کنید.

maps := make(map[string]int) // using the make function
maps := map[string]int{"one": 1, "two": 2, "three": 3} // declaring & instantiating a map

با تعیین کلیدها می توانید به مقادیر موجود در نقشه دسترسی پیدا کنید. همچنین، می توانید با تعیین یک جفت کلید-مقدار، مقادیر را در نقشه وارد کنید.

maps["one"] = 1// inserting to the map
one := maps["one"] // accessing element from the map

می‌توانید از تابع حذف برای حذف جفت‌های کلید-مقدار از نقشه‌ها استفاده کنید. تابع حذف، شناسه نقشه و کلید جفتی را که می‌خواهید حذف کنید، می‌گیرد:

delete(maps, "one")

توابع در Go

توابع ابزاری برای قابلیت استفاده مجدد کد در Go هستند. می توانید توابع را با کلمه کلیدی func و به دنبال شناسه تابع اعلام کنید:

funcmain() {
}

توابع می توانند آرگومان ها را بپذیرند و مقادیر را برگردانند. شما باید نوع آرگومان را در کنار شناسه آرگومان ها مشخص کنید.

funcadd(x string, y int)int {
    return x + y
}

نوع برگشتی را قبل از بلوک کد تابع مشخص می‌کنید و برای توابعی که مقادیر را برمی‌گردانند، مقداری از نوع مشخص شده را برمی‌گردانید.

مطلب مرتبط:   useState در مقابل useReducer در React: Picking the Right Management Hook

سازه ها در Go

Go از نظر طراحی یک زبان شی گرا نیست، اما می توانید ویژگی های شی گرا را در Go با استفاده از ساختارها پیاده سازی کنید.

ساختارها انواع تعریف شده توسط کاربر برای گروه بندی انواع داده های دیگر در یک موجودیت واحد هستند. ساختارهای Go می توانند مقادیری از هر نوع پشتیبانی شده از Go را در خود نگه دارند و توابع می توانند ساختارها را پیاده سازی کنند.

در اینجا چگونه می توانید یک ساختار را در Go اعلام کنید:

type Game struct {
    Name string
    Year int
    PlayTime float64
    Players any
    Countries map[string]string
}

ساختار Game دارای فیلدهایی با انواع نقشه، رشته، عدد صحیح و ممیز شناور است. می‌توانید ساختارها را با مقادیر پیش‌فرض نمونه‌سازی کنید یا مقادیری را به آنها اختصاص دهید.

var mko Game // default value instantiation
 
// instantiating with values
mko := Game{
    Name: "Value",
    Year: 1231,
    PlayTime: 1345412,
    Players: [2]string{"9", "stuff"},
    data: map[string]int{"one": 1, "two": 2, "three": 2},
}

توابع می توانند انواع ساختار را پیاده سازی کرده و به آنها دسترسی داشته باشند. شما باید قبل از شناسه تابع، پارامتر ساختار را مشخص کنید.

func(g Game)FindGame(name string) {
    a := g.Year // accessing struct fields
    var b = g.Countries // accessing struct fields
}

وقتی یک ساختار را به یک تابع ارسال می کنید، تابع به فیلدهای ساختار دسترسی دارد و تابع به یک متد ساختاری تبدیل می شود.

Go موارد استفاده زیادی دارد

شما اصول اولیه زبان برنامه نویسی Go و نحو شروع نوشتن برنامه های Go را یاد گرفته اید.

زمینه ها و برنامه های زیادی وجود دارد که می توانید از Go استفاده کنید. Go عموماً به عنوان یک زبان سمت سرور استفاده می شود و همیشه می توانید ساخت برنامه های مبتنی بر وب را نیز با آن کاوش کنید.