кодесурса

Go Language, Введение

script1adsense2code
script1adsense3code

Эта презентация представляет собой введение в язык 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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code