LINUX.ORG.RU

Опубликован выпуск «Learning Go» 0.3

 ,


0

3

Язык Go ещё очень молод и динамично развивается. Несмотря на то, что язык отлично документирован на golang.org, чувствуется недостаток книг.

На сегодняшний день «Learning Go» — наиболее объёмная книга по этому перспективному языку программирования, хотя, как пишет автор, Miek Gieben, это скорее слепок текущего состояния, чем её финальная версия.

Скачать

>>> Подробности



Проверено: JB ()
Последнее исправление: Dendy (всего исправлений: 2)
Ответ на: комментарий от pevzi

О! Вспомнил ещё ултимэйт штуку!! Там нету явных спецификаторов доступа.

func MegaFunction(){ // это public функция, будет видна за пределами пакета
}

func notSoMega() { // это private функция
}

Компилятор решает public это или private в зависимости от того с большой буквы написано название переменной/функции/метода или нет.

mors
()
Ответ на: комментарий от mors

> Компилятор решает public это или private в зависимости от того с большой буквы написано название переменной/функции/метода или нет.

Классный язык, чо.

tailgunner ★★★★★
()
Ответ на: комментарий от mors

public это или private в зависимости от того с большой буквы написано название

Вообще-то синтаксис go должен вызывать лютый баттхёрт, ещё почище питоновских отступов. Они убрали большинство тем для холиворов: открывающая скобка на той же строке и gofmt как единственно верный вариант написания кода — это вам не PEP8.

baverman ★★★
()
Ответ на: комментарий от tailgunner

> Компилятор решает public это или private в зависимости от того с большой буквы написано название переменной/функции/метода или нет.

ну всё... следущий этап «крутости супер фишек» — это уже видимо когда компилятор будет решать приватность/публичность в зависимости и в зависимости от негативного и позитивного фонетического звучания идентификаторов,

:-/ :-)

user_id_68054 ★★★★★
()
Ответ на: комментарий от mors

> Компилятор решает public это или private в зависимости от того с большой буквы написано название переменной/функции/метода или нет.

ужасно.

sv75 ★★★★★
()
Ответ на: комментарий от baverman

Во! Вспомнил ещё одну офигительную штуку — оператор defer. Он позволяет указать код, который должен быть вызван в любом случае при выходе из функции. Пример:

func CopyFile(dstName, srcName string) (written int64, err os.Error) {
    src, err := os.Open(srcName, os.O_RDONLY, 0)
    if err != nil {
        return
    }
    defer src.Close()
 
    dst, err := os.Open(dstName, os.O_WRONLY|os.O_CREATE, 0644)
    if err != nil {
        return // тут будет вызван src.Close()
    }
    defer dst.Close()
 
    return io.Copy(dst, src) // Тут будут вызваны src.Close(), dst.Close() (именно в этом порядке)
}

mors
()
Ответ на: комментарий от mors

оператор defer

Это всё от безисключительности go. Обработка ошибок в Си-стиле, возведённая до абсурда.

Мне в go нравится только реализация интерфейсов. Всё остальное вызывает WTF!!?? — пердуны реализовали свои юношеские мечты.

Почему гороутины не сделаны библиотекой? Потому что язык негибок и безблагодатен. Почему то нет именованных параметров, хотя они бы отлично вписались? И как для системного языка, слишком мало возможностей по управлению памятью.

Если не обращать внимания на слово google, то язык в текущем своём виде и реализации совершенно не катит на замену существующих решений.

baverman ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.