Go (ծրագրավորման լեզու)

Վիքիպեդիայից՝ ազատ հանրագիտարանից
Jump to navigation Jump to search
Go
Go Logo Aqua.svg
Տեսակ կոմպիլյացվող, իմպերատիվ, ստրուկտուրավորված
Առաջացել է 2009
Ստեղծող Գուգլ, Ռոբ Պայկ և Քեն Թոմփսոն
Նախագծող Ռոբ Պայկ, Քեն Թոմփսոն և Ռոբերտն Գրիզմեր
Ընդլայնումներ .go
Համացանցի տվյալների տեսակ text/x-go
Ընթացիկ տարբերակ 1.10.3 (հունիսի 5, 2018)[1]
Ներշնչվել է C, Oberon
Արտոնագիր BSD արտոնագիր[2]
Հմայագիր Go gopher[3][4]
Կայք golang.org[5]
Go (programming language) Վիքիպահեստում

GoGoogle ֆիրմայում մշակվող ծրագրավորման լեզու է[6]։ Լեզվի իրականացումը սկսվել է 2007 թվականին՝ Ռոբերտ Պայկի, Քեն Թոմփսոնի և Ռոբերտ Գրիսմերի կողմից[7]։ Go֊ն ստատիկ տիպիզացվող լեզու է, որի շարահյուսությունը շատ նման է C լեզվին, իսկ որոշ քերականական բաղադրիչներ ընդօրինակված են Oberon լեզվից։ Go լեզվի իրականացման անբաժանելի մաս է կազմում նաև ստանդարտ գրադարանը։

Go լեզուն հանրությանն է ներկայացվել 2009 թվականին, և այժմ օգտագործվում է Google֊ի որոշ նախագծերում[8]։

Նկարագրություն[խմբագրել | խմբագրել կոդը]

Go լեզվի ծրագրային միավորներ են փաթեթը (package) և ֆունկցիան (function)։ Ցույց տալու համար, որ մի որևէ ֆայլի պարունակությունը պատկանում է example փաթեթին, ֆայլի սկզբում պետք է գրել.

package example

Ֆունկցիայի սահմանումը սկսվում է func ծառայողական բառով, որին հետևում է ֆունկցիայի անունը, ապա՝ ֆորմալ պարամետրերի ցուցակը, և վերջում, եթե այդպիսին կա, ֆունկցիայի վերադարձրած արժեքի տիպը։ Օրինակ, երկու թվերի քառակուսիների գումարը հաշվող ֆունկցիան կարող է ունենալ հետևյալ տեսքը․

func sumSqr(a, b int) int {
  a2 := a * a
  b2 := b * b
  return a2 + b2
}

Օրինակներ[խմբագրել | խմբագրել կոդը]

Ամենակարճ ծրագիրը[խմբագրել | խմբագրել կոդը]

Go լեզվով գրված ամենակարճ ծրագիրը բաղկացած է main փաթեթում main ֆունկցիայի սահմանումից։

package main

func main() {}

Կոորդինատի մոդելը[խմբագրել | խմբագրել կոդը]

Go լեզվում կառուցվածք (գրառում) բաղադրյալ տիպը սահմանվում է struct նկարագրիչի օգնությամբ։ Եթե դեկարտյան կետը բաղկացած է աբսցիսը ցույց տվող և օրդինատը ցույց տվող դաշտերից, ապա cartesian կառուցվածքը կսահմանվի հետևյալ կերպ։

type cartesian struct {
 x, y float64
}

cartesian տիպի օբյեկտի հետ աշխատելու համար Go լեզուն թույլ է տալիս սահմանել մեթոդներ։ Օրինակ, կոորդինատների սկզբնակետից տրված կետւ հեռավորությունը հաշվող radius մեթոդը կսահմանվի այսպես․

func (p cartesian) radius() float64 {
 return math.Sqrt(p.x * p.x + p.y * p.y)
}

Իրականացումներ[խմբագրել | խմբագրել կոդը]

Բացի Google֊ի իրականացումից, Go լեզուն իրականացված է նաև gcc փաթեթում՝ gccgo անունով։ Google֊ի gc կոմպիլյատորը իրականացված է Linux, OS X, FreeBSD, NetBSD, OpenBSD, Plan 9, Solaris և Windows օպերացիոն համակարգերի համար[9]։

Ծանոթագրություններ[խմբագրել | խմբագրել կոդը]

  1. Release History
  2. LICENSE-file
  3. https://blog.golang.org/gopher
  4. https://github.com/golang/go/wiki/Gopher
  5. http://ports.su/lang/go,-main
  6. Kincaid Jason (նոյեմբերի 10, 2009)։ «Google’s Go: A New Programming Language That’s Python Meets C++»։ TechCrunch։ Վերցված է հունվարի 18, 2010 
  7. «Language Design FAQ»։ golang.org։ հունվարի 16, 2010։ Վերցված է փետրվարի 27, 2010 
  8. «Go FAQ: Is Google using Go internally?»։ Վերցված է մարտի 9, 2013 
  9. «Installing Go»։ golang.org։ The Go Authors։ հունիսի 11, 2010։ Վերցված է հունիսի 11, 2010