Go (язык программирования)
Материал из Seo Wiki - Поисковая Оптимизация и Программирование
| Файл:Golang.png </span> | ||
Содержание |
[править] Название
Следует отметить, что название языка, выбранное компанией Google, практически совпадает с названием языка программирования Go!, созданного Ф.Джи. МакКейбом и К. Л. Кларком в 2003 году.[4] Обсуждение названия ведется на странице, посвященной Go[4].
[править] Описание
Синтаксис языка Go схож с синтаксисом языка Си, за исключением объявлений типа; прочие синтаксические различия заключаются в отсутствии круглых скобок для условных конструкций for и if. Язык также поддерживает сборку мусора (garbage collection). Модель многопоточности Go была создана на основе CSP Тони Хоара по типу предыдущих распараллеливаемых языков программирования Occam и Limbo,[2], но также присутствуют такие особенности Пи-исчисления как канальная передача.
Однако отсутствуют такие возможности как обработка исключений, наследование типов, обобщённое программирование, использование утверждений и переопределение методов (en:Method overriding).[2] Однако, у Google есть в дальнейших планах возможность добавления обобщённого программирования, тогда как против использования утверждений в FAQ по языку приводятся аргументы, а наследование без указания типа, наоборот, отстаивается. В отличие от Java присутствует поддержка ассоциативных массивов (в виде хэшей или словарей) как и строк.
[править] Реализации
На данный момент существуют два компилятора Go. 6g (и сопутствующие ему инструменты, вместе известные под названием gc) написан на Си с применением yacc/Bison для парсера. Gccgo — еще один компилятор Go с клиентской частью, написанной на C++, и рекурсивным парсером, совмещенным со стандартным бэк-эндом GCC[5].
[править] Примеры
Ниже представлен пример программы «hello world» на языке Go.
package main import "fmt" func main() { fmt.Printf("Hello, World!\n") }
Пример реализации команды Unix echo
package main import ( "os"; "flag"; // парсер параметров командной строки ) var omitNewline = flag.Bool("n", false, "не печатать последнюю линию") const ( Space = " "; Newline = "\n"; ) func main() { flag.Parse(); // Сканирование списка аргументов и установка флагов var s string = ""; for i := 0; i < flag.NArg(); i++ { if i > 0 { s += Space } s += flag.Arg(i) } if !*omitNewline { s += Newline } os.Stdout.WriteString(s); }
[править] Примечания
[править] Ссылки
- Google создал новый язык программирования
- Домашняя страница языка Go
- Вопросы и ответы по языку Go
- The Go Programming Language на YouTube
- IRC : irc://irc.freenode.net/go-nuts на irc.freenode.net
- Подписка на рассылку : http://groups.google.com/group/golang-nuts
| Файл:Compu-lang-stub-by-Mercury.png | Это незавершённая статья о компьютерных языках. Вы можете помочь проекту, исправив и дополнив её. |
<imagemap>
Image:Wiki_letter_w.svg
| Для улучшения этой статьи желательно?:
|
da:Go (programmeringssprog) de:Go (Programmiersprache) en:Go (programming language) es:Go (lenguaje de programación) fi:Go (ohjelmointikieli) fr:Go (langage) he:GO (שפת תכנות) hu:Go (programozási nyelv) it:Go (Linguaggio di programmazione) ja:Go (プログラミング言語) ms:Go (bahasa pengaturcaraan) nl:Go (google) no:Go (programmeringsspråk) pl:Go (język programowania) pt:Go (linguagem de programação) sr:Гоу tr:Go (programlama dili) vi:Ngôn ngữ GO zh:Go
Просмотры
Личные инструменты
Served in 1.804 secs.