داتیس نتورک

زبان برنامه نویسی Go چیست؟ آشنایی با زبان برنامه نویسی گو

زبان برنامه نویسی Go یا گو در سال 2009 توسط کن تامپسون و رابرت گریسیمر و راب پایک در شرکت گوگل طراحی و توسعه داده می شود. در ادامه برای آشنایی بیشتر با این زبان برنامه نویسی همراه داتیس نتورک باشید.

زبان برنامه نویسی Go چیست؟ آشنایی با زبان برنامه نویسی گو

زبان برنامه نویسی Go چیست؟

زبان برنامه نویسی گو در سال 2009 معرفی شد. تامپسون و رابرت گریسیمر و راب پایک توسعه دهندگان این زبان برنامه نویسی در شرکت Google هستند.

یک زبان برنامه‌نویسی ترجمه‌شده و دارای زباله جمع‌کن و همروند است و در حال حاضر در چند سامانه اجرایی گوگل استفاده می‌شود.

مترجم Go از لینوکس، مک، ویندوز و انواع سیستم‌های عامل BSD مانند FreeBSD پشتیبانی می‌کند.

از لحاظ معماری پردازنده نیز، معماری x86، معماری x64، معماری Arm و معماری POWER که مخصوص به شرکت آی ‌بی‌ ام است، توسط مترجم گو پشتیبانی می‌شوند.

شی گرایی در Go

در زبان گو، ارث ‌بری یا Inheritance نوع‌ها وجود ندارد. در این زبان، می‌توان برای هر نوع داده‌ای، حتی برای نوع‌های داخلی، مثل اعداد صحیح فاقد بسته‌بندی، تابع عضو تعریف کرد، و این عمل محدود به ساخت‌ها نمی‌شود.

در زبان Go از رابط‌ها یا Interfaces می‌توان برای تعریف رفتار یک شی استفاده کرد. هر رابط مجموعه‌ای از تعریف توابع است، و هر نوعی که توابع این رابط را داشته باشد، این رابط را پیاده‌سازی کرده‌است.

در نمونه زیر، یک رابط تعریف شده‌است که یک تابع به نام Abs و نوع خروجی float64 مشخص کرده‌است. هر نوعی که این تابع را پیاده‌سازی کند، در واقع این رابط را پیاده‌سازی کرده‌است. به عنوان نمونه، هم MyFloat و هم Vertex این چنین هستند.

type Abser interface {
Abs() float64
}

type MyFloat float64

func (f MyFloat) Abs() float64 {
if f <0 {
return float64(-f)
}
return float64(f)
}

type Vertex struct {
X, Y float64
}

func (v Vertex) Abs() float64 {
return math.Sqrt(v.X*v.X + v.Y*v.Y)
}

func main() {
var a Abser
f := MyFloat(-math.Sqrt2)
v := Vertex{3, 4}
a = f // a MyFloat implements Abser
fmt.Println(a.Abs())
a = v // a Vertex implements Abser
fmt.Println(a.Abs())
}

طراحی زبان برنامه نویسی گو

زبان برنامه‌نویسی Go به شیوه‌ای طراحی شده است که ضمن برطرف کردن انتقادهای رایج از دیگر زبان‌ها، ویژگی‌های مثبت آنها را حفظ کند. زبان جدید شامل ویژگی‌های زیر بود:

Go به‌طور قابل توجهی در سنت C است، اما باعث تغییرات بسیاری می‌شود که به منظور شفافیت، سادگی و ایمنی ایجاد می‌شود:

یک روش نحوی و محرک پذیرش الگوهای رایج در زبان‌های پویا:

رویکردهای متمایز به مشکلات خاص Go:

ضعف های زبان برنامه نویسی Go

نظر منتقدان درباره زبان برنامه نویسی گو:

امیدواریم مقاله آشنایی با زبان برنامه نویسی Go برای شما مفید بوده باشد

داتیس نتورک را در شبکه های اجتماعی دنبال کنید

خروج از نسخه موبایل