Операторы и встроенные функции
Операторы
+
- сложение, конкатенация
=
- присваивание - кладется значение в существующую переменную
:=
- сокращенное объявление переменной - инициализация новой переменной. Область видимости таких переменных ограничена телом той функции или оператора, в котором она была объявлена. Пример:
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