Операторы и встроенные функции

Операторы

+ - сложение, конкатенация

= - присваивание - кладется значение в существующую переменную

:= - сокращенное объявление переменной - инициализация новой переменной. Область видимости таких переменных ограничена телом той функции или оператора, в котором она была объявлена. Пример:

test := "123"
if true {
	test := "456"
	fmt.Println(test)
}
fmt.Println(test)

/*
Out:

456
123
*/

<- - оператор передачи данных

Оператор отложенного вызова defer

defer - отложенный вызов функции. Функция os.File.Close() будет вызвана при выходе из main. Это нужно для экономии времени (например, если эта операция занимает много времени).

func main() {
    defer os.File.Close()
}

Оператор запуска goroutins

func(){
    go func() {
        // ...
    }()
}()

Встроенные функции

Функции могут быть переопределены для пользовательских типов

len() - длина или размер коллекций, каналов обмена данными и строк
cap() - емкость срезов и каналов (может быть больше фактической длины)

new_stack = append(*stack, obj1, obj2, ...) - функция над срезами: добавление элементов в срез
make(map[string]string) - создание ссылки, срезов, отображений и каналов
copy(dst, src)  // копирует срез из src в dst

Обработка исключений

panic()

recover()

всегда возвращать объект err.

Last updated