Go (език за програмиране)

Go
Парадигмаобектно ориентиран, процедурен
Реализиране през2009 г.
АвторGoogle и
Роб Пайк, Кен Томпсън, Робърт Гриземер
Типизация на даннитестатичен
Повлиян отC, Oberon, Limbo
Повлиява-
Уебсайтgolang.org
Go в Общомедия

Go е език за програмиране, разработен от Google.[1] Първоначалният проект на Go е започнат през септември 2007 г. от Робърт Гриземер, Роб Пайк и Кен Томпсън.[2] Разработката на езика е от 2007 година, но официално е обявен през 2009 година в бета-версия. Въпреки това днес Go се използва в някои приложения на Google, както и в сайта на Go.

Цел[редактиране | редактиране на кода]

Според създателите на Go целта за създаването му е била породена от появата на многоядрени процесори, паралелни изчисления и ускоряването на работата на компютрите, но не и за разработката на софтуер. Компилира се бързо.

Характеристика[редактиране | редактиране на кода]

Go е статичен, компилиращ се език с автоматично освобождаване на ресурсите (garbage-collected). Синтаксиса му е близък до този на C с някои изключения. Обектно ориентиран е, но няма класове. Има само един цикъл – for, конструкции if и Switch.

Има вграден мениджър на пакетите (go get), вградени примитиви за паралелна работа, леки (light-weight) процеси наречени goroutines както и channels.

Има компилатори за следните операционни системи: linux, freebsd, darwin(Mac OS X 10.5 or 10.6), 64-bit x86, 32-bit x86 и 32-bit ARM, както и за Windows XP и нататък.

Примерна програма[редактиране | редактиране на кода]

Програмата Hello, world

package main  import "fmt"  func main() {   fmt.Printf("Hello, world") } 

Пример (константи, проеменливи, for, switch):

package main  import "fmt"  const ( 	HELLO = "Hello" 	INTERVAL = " " 	GOLANG = "Go" )  var ( 	hello string = "Hello" 	world string = "World" )  func main() { 	// for 	for i := 0 ; i < 5 ; i++ { 		fmt.Println(i) 	} 	fmt.Println(hello + " " + world) 	fmt.Println(HELLO + INTERVAL + GOLANG) 	// switch 	switch {         case len(HELLO) < len(GOLANG):                 fmt.Println("len(HELLO) < len(GOLANG)")         case len(HELLO) > len(GOLANG):                 fmt.Println("len(HELLO) > len(GOLANG)")     }  } 

Ключови думи[редактиране | редактиране на кода]

break        default      func         interface    select case         defer        go           map          struct chan         else         goto         package      switch const        fallthrough  if           range        type continue     for          import       return       var 

Конвенции за писане на код[редактиране | редактиране на кода]

Създателите на езика полагат усилия за да стандартизират начина на писане на код, идентациите и стила. За целта има създадена страница с най-добрите практики.

Лиценз[редактиране | редактиране на кода]

Лицензът е BSD.

Източници[редактиране | редактиране на кода]

  1. Jason Kincaid. Google's Go: A New Programming Language That's Python Meets C++ // TechCrunch. Посетен на 3 март 2011. (на английски)
  2. "Language Design FAQ" // Посетен на 3 март 2011. (на английски)

Външни препратки[редактиране | редактиране на кода]