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. (на английски)

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