мета-данные страницы
Загрузка не удалась. Возможно, проблемы с правами доступа?
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| golang [12/04/2016 23:31] – Владимир Власов | golang [07/09/2018 21:51] (текущий) – [Установка бинарного дистрибутива] ybezrukov | ||
|---|---|---|---|
| Строка 24: | Строка 24: | ||
| - скачиваем по ссылке [[https:// | - скачиваем по ссылке [[https:// | ||
| - распаковываем в домашней директории под именем $HOME/go; | - распаковываем в домашней директории под именем $HOME/go; | ||
| - | - устанавливаем системные переменные и изменения в переменной $PATH путем редактирования файла .profile< | + | - устанавливаем системные переменные и изменения в переменной $PATH путем редактирования файла .profile |
| - | EXPORT | + | < |
| - | EXPORT | + | export |
| + | export | ||
| + | export | ||
| + | </ | ||
| ===== Основные возможности ===== | ===== Основные возможности ===== | ||
| Строка 35: | Строка 37: | ||
| ==== Минимальный набор элементов ==== | ==== Минимальный набор элементов ==== | ||
| - | < | + | < |
| package main | package main | ||
| import " | import " | ||
| Строка 79: | Строка 81: | ||
| Полная форма задания переменных выглядит примерно так: | Полная форма задания переменных выглядит примерно так: | ||
| - | < | + | < |
| var x float64 = 1.234 | var x float64 = 1.234 | ||
| </ | </ | ||
| Строка 91: | Строка 93: | ||
| Но так как поддерживается динамическая типизация, | Но так как поддерживается динамическая типизация, | ||
| - | < | + | < |
| var x = 1.234 | var x = 1.234 | ||
| print (x) | print (x) | ||
| - | +0.000000e+000 | + | +1.234000e+000 |
| </ | </ | ||
| или даже проще (как присваивание в Pascal' | или даже проще (как присваивание в Pascal' | ||
| - | < | + | < |
| x := 1.234 | x := 1.234 | ||
| print (x) | print (x) | ||
| - | +0.000000e+000 | + | +1.234000e+000 |
| </ | </ | ||
| Строка 120: | Строка 122: | ||
| Рассмотрим на примере. Создадим простейшую структуру, | Рассмотрим на примере. Создадим простейшую структуру, | ||
| - | < | + | < |
| type pupil struct { | type pupil struct { | ||
| name string | name string | ||
| Строка 132: | Строка 134: | ||
| Определить новую переменную данного типа можно и объявлением: | Определить новую переменную данного типа можно и объявлением: | ||
| - | < | + | < |
| var dima pupil | var dima pupil | ||
| </ | </ | ||
| (поля будут инициализированы нулями и пустыми строками), | (поля будут инициализированы нулями и пустыми строками), | ||
| - | < | + | < |
| var dima = new(pupil) | var dima = new(pupil) | ||
| </ | </ | ||
| (об указателях, | (об указателях, | ||
| - | Но можно сделать инициализацию в стиле Go и динамически определить тип: | + | Но можно сделать инициализацию в стиле Go: |
| - | < | + | < |
| dima := pupil{name: " | dima := pupil{name: " | ||
| </ | </ | ||
| Строка 147: | Строка 149: | ||
| Теперь к свойствам можно обращаться в ООП-стиле: | Теперь к свойствам можно обращаться в ООП-стиле: | ||
| - | < | + | < |
| fmt.Println(dima.name, | fmt.Println(dima.name, | ||
| </ | </ | ||
| + | === Методы === | ||
| + | Методы, | ||
| + | <code go> | ||
| + | func (p pupil) habitus() float32 { | ||
| + | return ((p.height - 110) - p.weight) | ||
| + | } | ||
| + | </ | ||
| + | После ключевого слова ' | ||
| - | === Методы === | + | <code go> |
| + | dima := pupil{name: " | ||
| + | fmt.Println(dima.name, | ||
| + | </ | ||
| === Интерфейсы === | === Интерфейсы === | ||
| Строка 163: | Строка 176: | ||
| === Вывод === | === Вывод === | ||
| - | < | + | < |
| package main | package main | ||
| func main() { | func main() { | ||
| Строка 172: | Строка 185: | ||
| Тем не менее, стандартным способом вывода считается такая конструкция: | Тем не менее, стандартным способом вывода считается такая конструкция: | ||
| - | < | + | < |
| package main | package main | ||
| import " | import " | ||
| Строка 185: | Строка 198: | ||
| == Попроще == | == Попроще == | ||
| - | < | + | < |
| package main | package main | ||
| import " | import " | ||
| Строка 205: | Строка 218: | ||
| Используется буфер! | Используется буфер! | ||
| - | < | + | <hidden кликнуть чтобы скрыть> |
| + | < | ||
| package main | package main | ||
| import ( | import ( | ||
| Строка 243: | Строка 257: | ||
| } | } | ||
| </ | </ | ||
| + | </ | ||
| Примеры взяты тут: [[http:// | Примеры взяты тут: [[http:// | ||
| + | |||
| + | < | ||
| ===== Создание собственного web-сервера ===== | ===== Создание собственного web-сервера ===== | ||
| - | На основе статей [[https:// | + | На основе статей [[https:// |
| + | |||
| + | Замечательная книга товарища astaxie в настоящий момент переводится на русский язык, и нужные нам главы уже доступны на русском: | ||
| Пока, вот минимальный код: | Пока, вот минимальный код: | ||
| - | < | + | < |
| package main | package main | ||
| Строка 270: | Строка 289: | ||
| </ | </ | ||
| - | просто сохраняем (напр., | + | просто сохраняем (напр., |