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

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

Go
Парадигма обектно ориентиран, процедурен
Реализиране през 2009 г.
Автор Google и
Роб Пайк, Кен Томпсън, Робърт Гриземер
Типизация на данните статичен
Повлиян от C, Oberon, Limbo
Повлиява -
Уебсайт golang.org
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. (на английски)

Външни препраткиРедактиране