golang-book.ru
Указатели — Введение в программирование на Go
http://golang-book.ru/chapter-08-pointers.html
Когда мы вызываем функцию с аргументами, аргументы копируются в функцию:. Func zero(x int) { x = 0 } func main() { x := 5 zero(x) fmt.Println(x) / x всё еще равен 5 }. В этой программе функция. Не изменяет оригинальную переменную. Но что если мы хотим её изменить? Один из способов сделать это использовать специальный тип данных указатель:. Func zero(xPtr *int) { *xPtr = 0 } func main() { x := 5 zero(&x) fmt.Println(x) / x is 0 }. Мы можем изменить значение оригинальной переменной. Операторы * и &. И в ни...
golang-book.ru
Тестирование — Введение в программирование на Go
http://golang-book.ru/chapter-12-testing.html
Писать программы не просто. Даже самые лучшие программисты, зачастую, не в состоянии написать программу так, чтобы она работала как положено в любых случаях. Поэтому, важной частью процесса разработки является тестирование. Написание тестов для нашего кода является отличным способом повышения его качества и стабильности. Go содержит специальную программу, призванную облегчить написание тестов, так что давайте напишем несколько тестов для пакета, который мы создали в предыдущей главе. В папке. Package mat...
golang-book.ru
Дальнейшие шаги — Введение в программирование на Go
http://golang-book.ru/chapter-14-next-steps.html
Теперь у вас должно быть достаточно знаний, чтобы написать практически любую программу на Go. Но опасно делать выводы о том, что теперь вы стали компетентным программистом. Программирование это большое мастерство, достаточно простое, если имеются знания. В этой главе я дам вам несколько советов о том, как лучше освоить ремесло программирования. Например, мы могли бы взглянуть на исходный код библиотеки. По адресу: http:/ golang.org/src/pkg/io/ioutil/ioutil.go. Есть комментарий, который гласит:. Один из л...
golang-book.ru
Функции — Введение в программирование на Go
http://golang-book.ru/chapter-07-functions.html
Функция является независимой частью кода, связывающей один или несколько входных параметров с одним или несколькими выходными параметрами. Функции (также известные как процедуры и подпрограммы) можно представить как черный ящик:. До сих пор мы писали программы, используя лишь одну функцию:. Но сейчас мы начнем создавать код, содержащий более одной функции. Вспомните эту программу из предыдущей главы:. Должна взять срез из нескольких. Func average(xs []float64) float64 { panic("Not Implemented") }. Теперь...
golang-book.ru
Стандартная библиотека — Введение в программирование на Go
http://golang-book.ru/chapter-13-core-packages.html
Вместо того, чтобы каждый раз писать всё с нуля, реальный мир программирования требует от нас умения взаимодействовать с уже существующими библиотеками. В этой главе мы рассмотрим самые часто используемые пакеты, включенные в Go. Предупреждаю: некоторые библиотеки достаточно очевидны (или были объяснены в предыдущих главах), многие из библиотек, включённых в Go требуют специальных знаний (например: криптография). Объяснение этих технологий выходит за рамки этой книги. Занимается чтением с помощью метода.
golang-book.ru
Переменные — Введение в программирование на Go
http://golang-book.ru/chapter-04-variables.html
Ранее в этой книге мы имели дело с литеральными значениями (числами, строками и т.д.), но программы с одними только литералами фактически бесполезны. Для того, чтобы сделать по-настоящему полезные программы, нам нужно узнать о двух важных вещах: переменных и инструкциях, управляющих ходом выполнения. В этой главе будут рассмотрены переменные. Package main import "fmt" func main() { var x string = "Hello World" fmt.Println(x) }. За которым следуют имя переменной (. И присваиваемое значение (. То по привыч...
golang-book.ru
Многопоточность — Введение в программирование на Go
http://golang-book.ru/chapter-10-concurrency.html
Очень часто, большие приложения состоят из множества небольших подпрограмм. Например, web-сервер принимает запросы от браузера и отправляет HTML страницы в ответ. Каждый такой запрос выполняется как отдельная небольшая программа. Горутина это функция, которая может работать параллельно с другими функциями. Для создания горутины используется ключевое слово. За которым следует вызов функции. Эта программа состоит из двух горутин. Функция. Без него программа завершится еще перед тем, как ей удастся вывести ...
golang-book.ru
Типы — Введение в программирование на Go
http://golang-book.ru/chapter-03-types.html
В предыдущей главе мы использовали строковый тип данных, чтобы хранить. Типы данных определяют множество принимаемых значений, описывают, какие операции могут быть применены к ним, и определяют, как данные будут храниться. Поскольку типы данных могут быть сложны для понимания, мы попробуем рассмотреть их подробнее, прежде чем разбираться, как они реализованы в Go. Строка, а значит у. В математике мы часто говорим о множествах. Например,. Множество всех вещественных чисел) или. A (b c) = (a b) c. Go это я...
golang-book.ru
Массивы, срезы, карты — Введение в программирование на Go
http://golang-book.ru/chapter-06-arrays-slices-maps.html
Массивы, срезы, карты. В главе 3 мы изучили базовые типы Go. В этой главе мы рассмотрим еще три встроенных типа: массивы, срезы и карты. Массив это нумерованная последовательность элементов одного типа с фиксированной длинной. В Go они выглядят так:. Это пример массива, состоящего из пяти элементов типа. Package main import "fmt" func main() { var x [5]int x[4] = 100 fmt.Println(x) }. Вы должны увидеть следующее:. 0 0 0 0 100]. И в результате будет выведено. Пример программы, использующей массивы:. Var t...