Go Language, Введение
Эта презентация представляет собой введение в язык GO, охватывающее объявления переменных, встроенные типы, преобразования типов, функции, функции и замыкания, пакеты, управляющие структуры, карты, структуры, интерфейсы, обработку ошибок и т. Д.
расшифровка
Go Language, Введение
Привет, мир
Файл: hello.go
основной пакет импорт "фмт" func main () { fmt.Println ("Привет, иди !!") }
Вывод: Привет!
Объявление переменной
переменная
Объявление и инициализация переменной
// Объявляем типы после идентификатора var foo int = 52 // объявляем переменную с инициализацией var foo int // объявляем переменную без инициализации var foo, bar int = 56, 9999 // объявляем более одной переменной var foo = 72 // тип опущен, будет выведен foo: = 72 // сокращение, только в функциональных телах const constant = "объявить константу таким образом"
Встроенные типы
int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr float32 float64 complex64 complex128 BOOL строка байт // псевдоним для uint8 Руна // псевдоним для int32 ~ = символ (кодовая точка Unicode) - очень Viking
Тип преобразования
var x int = 72 var y float64 = float64 (x) var z uint = uint (y) // Вы также можете использовать следующий синтаксис (альтернативный синтаксис) х: = 72 y: = float64 (x) z: = uint (y)
функции
Объявление простой функции
func MyfunctionName () {}
Функция с параметрами
Функция с несколькими параметрами (разные типы)
func MyfunctionName (параметр1 int, параметр2 строка) {}
Функция с несколькими параметрами (одного типа)
func MyfunctionName (параметр1, параметр2 строка) {}
Возврат функции и значения
Функция с объявлением типа возврата
func MyfunctionName () (string) { вернуть "возвращаемую строку" }
Функция с несколькими возвращаемыми значениями
func MyfunctionName () (int, string) { возврат 200, "Пицца" } var a, str1 = MyfunctionName ()
Вернуть несколько результатов, по возвращении
func MyfunctionName () (x int, строка str1) { х = 200 str1 = "Пицца" // x и str1 будут возвращены вернуть } var x, str1 = MyfunctionName ()
Функции как значения и замыкания
Функции как значения
Вызов функции:
func main () { // назначаем функцию имени add: = func (x, y int) int { вернуть х + у } // вызвать функцию fmt.Println (добавить (24, 78)) }
Функции как значения и замыкания
Go поддерживает анонимные функции, которые могут образовывать замыкания. Анонимные функции полезны, когда вы хотите определить встроенную функцию, не называя ее.
func add () func (int) int { сумма: = 0 return func (int) int { sum + = a // сумма объявлена снаружи, но все еще видима возврат суммы } }
пакеты
● Объявить пакет в верхней части каждого исходного файла ● исполняемые файлы находятся в основном пакете ● соглашение: имя пакета == фамилия пути импорта ● идентификатор в верхнем регистре: экспортировано (видно из других пакетов) ● Идентификатор в нижнем регистре: частный (не видно из других пакетов)
Управляющие структуры
если заявление
Простое утверждение if
если х> 0 { возврат х } еще { возврат -x }
Можно поставить одно утверждение перед условием
если x: = y + z; z <100 { вернуть } еще { возврат z - 100 }
для петель
Доступен только цикл `for`, нет` while`, нет `пока`
для х: = 1; х <10; х ++ { } за ; х <10; {// while - цикл } для x <10 {// пропустить точки с запятой, если есть только условие } для {// вы можете опустить условие ~ while (true) }
Смена оператора
switch gradeSystem { дело "А": fmt.Println ("Оценка А") // дела прерываются автоматически дело "B": fmt.Println ("Класс B") дефолт: fmt.Println («Средняя оценка») }
Массивы
Объявить, установить и прочитать
var x [10] int // объявляем массив int длины 10. x [3] = 100 // набор элементов i: = x [3] // читать элементы // объявляем и инициализируем x: = [2] int {1, 2} x: = [...] int {1, 2} // elipsis -> Компилятор вычисляет длину массива
Карты
Объявить, установить и прочитать
var m map [string] int m = make (map [string] int) м ["ключ"] = 200 fmt.Println (м [ "ключ"]) удалить (м, "ключ") elem, ok = m ["key"] // извлекаем ключ, если он присутствует // карта буквальная var m = map [string] Vertex { "Сингапур": {1.3000, 103.8000}, «Словакия»: {45.1500, 17.1167}, }
Структуры
Там нет классов, только структуры. Объявите, создайте и получите доступ.
// Декларация структура типа точки { X, Y int } // Создание var h = точка {1, 2} // Доступ к членам hX = 4
Методы на структурах
Там нет классов, только структуры. Объявите, создайте и получите доступ.
// Декларация структура типа точки { X, Y int } func (v point) abs () float64 { вернуть математику. Sqrt (VX * VX + VY * VY) } // Вызов метода v.abs ()
указатели
Go поддерживает указатели, позволяя вам передавать ссылки на значения и записи в вашей программе.
р: = центр {1, 2} q: = & p // q - указатель на p r: = ¢ er {1, 2} // r также указывает на центр // Тип указателя на центр - * центр var s * center = new (center) // new создает указатель на новый экземпляр структуры
Интерфейсы
Интерфейсы именуются коллекциями сигнатур методов.
// объявление интерфейса интерфейс типа геометрии { area () float64 } // квадратный тип тип квадратная структура { ширина, высота float64 } // реализовать интерфейс func (s square) area () float64 { вернуть s.width * s.height }
Обработка ошибок
Там нет обработки исключений. Подход Go позволяет легко увидеть, какие функции возвращают ошибки, и обрабатывать их, используя одни и те же языковые конструкции.
func abcd () (int, error) { } func main () { результат, ошибка: = abcd () if (error! = nil) { // обработать ошибку } еще { // использовать результат } }
Новый контент: Composer: менеджер зависимостей для PHP , R программирования