30 примеров программирования на Golang для начинающих

30 Primerov Programmirovania Na Golang Dla Nacinausih



Golang, который также называется языком программирования Go, представляет собой язык программирования с открытым исходным кодом, разработанный Google в 2007 году. Версия 1.0 этого языка была выпущена в 2012 году. Это структурированный язык программирования, такой как C, и различные типы приложений, такие как сетевые службы, облачные сервисы. приложения, веб-приложения и т. д. могут быть разработаны на языке Golang. Он содержит множество типов пакетов, таких как Python. Его очень легко выучить, что делает этот язык популярным среди начинающих программистов. В этом руководстве были объяснены 30 примеров программирования на Golang, которые помогут вам изучить Golang с основ.

Предварительные условия:

Golang поддерживается различными типами операционных систем. В этой части руководства был показан способ установки Golang в Ubuntu. Выполните следующие команды, чтобы обновить систему и установить Golang в системе, прежде чем практиковать примеры из этого руководства.







$ судо подходящее обновление
$ судо подходящий установить рост

Запустите следующую команду, чтобы проверить установленную версию Golang.



$ Го-версия

Оглавление:



  1. Привет, привет, мир
  2. Строковые переменные Golang
  3. Golang int в строку
  4. Golang строка в т
  5. Конкатенация строк Golang
  6. Многострочная строка Golang
  7. Разделение строки Golang
  8. Голанг спринтф
  9. Перечисление Голанга
  10. Голанговая структура
  11. Голанский массив
  12. Голанговые наборы
  13. Голанг для цикла
  14. Голанг для диапазона
  15. Голанг во время цикла
  16. Голанг продолжить
  17. Корпус переключателя Golang
  18. Голанг случайное число
  19. Голанг сон
  20. Золотое время
  21. Голанг uuid
  22. Golang прочитать файл
  23. Golang читает файл построчно
  24. Голанг запись в файл
  25. Golang проверяет, существует ли файл
  26. Голанские CSV
  27. Голанг Ямл
  28. HTTP-запрос на Голанге
  29. Аргументы командной строки Golang
  30. Обработка ошибок Golang


Привет, привет, мир

основной Пакет Golang содержит все необходимые пакеты для программирования Golang и необходим для запуска выполнения скрипта Golang. ФМТ Пакет необходим для импорта для печати форматированной строки в терминале. Создайте файл Golang с помощью следующего скрипта. Строковое значение «Hello World» будет напечатано в терминале после выполнения сценария.





//Импортируем пакет fmt для печати вывода
Импортировать 'ФМТ'

//Определяем функцию main() для начала выполнения
функция основной () {

//Распечатываем простое сообщение с новой строки
ФМТ . Println ( 'Привет, мир.' )

}

Запустите следующую команду, чтобы выполнить скрипт. Здесь скрипт сохранен в файле example1, go.

$ иди запусти example1.go

Запустите следующую команду, чтобы создать двоичный файл файла Golang.



$ иди создай example1.go

Выполните следующую команду, чтобы запустить исполняемый файл.

$ . / пример1

Следующий вывод появится после выполнения вышеуказанных команд:

  п1

Перейти наверх


Строковые переменные Golang

Строковые переменные можно использовать без определения типа данных и с типом данных в Golang. Создайте файл Golang с помощью следующего скрипта, который будет печатать простые строковые данные и строковые данные со строковыми переменными. Использование Печатьф() и Печатьln() функции были показаны в сценарии.

упаковка основной
//Импортируем пакет fmt для печати вывода
Импортировать 'ФМТ'

//Определяем функцию main()
функция основной () {

//Распечатываем строковое значение с новой строки
ФМТ . Печатьf ( «Изучите Golang на LinuxHint.com. \п ' )

//Определяем первую строковую переменную
был стр1 '=' «Программирование на Голанге».

//Распечатываем переменную без новой строки
ФМТ . Печатьf ( «Изучить %s» , стр1 )

//Определяем вторую строковую переменную
был стр2 '=' 'легко обучаема.'

//Распечатываем переменную с новой строки
ФМТ . Println ( 'Это' , стр2 )
}

Следующий вывод появится после выполнения приведенного выше сценария. Здесь печатаются выходные данные двух объединенных строк.

  п2

Перейти наверх


Golang int в строку

стрконв.Дроссель() и стрконв.FormatInt() функции можно использовать для преобразования целого числа в строковое значение в Golang. стрконв.Дроссель() используется для преобразования целочисленного значения в строку чисел. стрконв.FormatInt() Функция используется для преобразования целочисленных значений в десятичной системе в строку. Создайте файл Golang с помощью следующего сценария, который показывает способ преобразования целого числа в строку в Golang с помощью функций, упомянутых выше. Число будет взято у пользователя, и соответствующее строковое значение числа будет напечатано в качестве вывода.

//Добавляем основной пакет
упаковка основной
//Импортируем пакеты fmt и strconv
Импортировать (
'ФМТ'
'стрконв'
)

//Определяем основную функцию
функция основной () {

//Объявляем целочисленную переменную
был н интервал
//Распечатываем сообщение
ФМТ . Печатьf ( 'Введите число: ' )
//Принимаем данные от пользователя
ФМТ . Сканировать ( & н )

//Преобразуем целое число в строку с помощью функции Itoa()
конвертировать1 '=' стрконв . утонул ( н )
ФМТ . Печатьf ( «Преобразование целого числа в строку с помощью Itoa(): %s \п ' , конвертировать1 )

//Преобразуем целое число в строку с помощью функции FormatInt()
конвертировать2 '=' стрконв . ФорматИнт ( int64 ( н ), 10 )
ФМТ . Печатьf ( «Преобразование целого числа в строку с помощью FormatInt(): %s \п ' , конвертировать2 )
}

Следующий вывод появится после выполнения скрипта. Номер. 45 было преобразовано в строку. «45».

  п3

Перейти наверх


Golang-строка для int

стрконв.Атои() Функция используется для преобразования строки в целое число в Golang. Он принимает строковое значение, которое будет преобразовано в целое число, и возвращает два типа значений. Одно значение — целое число, если диалог успешен, а другое значение — ошибка, если диалог не удался, в противном случае. ноль значение будет возвращено. Создайте файл Golang с помощью следующего скрипта, который преобразует ряд строковых значений в целое число с помощью стрконв.Атои() функция. Строковое значение «342» будет преобразовано в число 342 и напечатано после выполнения.

//Добавляем основной пакет
упаковка основной
//Импортируем пакеты fmt и strconv
Импортировать (
'ФМТ'
'стрконв'
)

//Определяем основную функцию
функция основной () {

//Объявляем строковую переменную
ул. '=' '342'

//Преобразуем строку в целое число с помощью функции Atoi()
цена , ошибаться '=' стрконв . трейлер ( ул. )

//проверяем наличие ошибки
если ошибаться == ноль {
//Распечатываем преобразованное значение
ФМТ . Печатьf ( «Цена книги %d \п ' , цена )
} еще {
//Распечатываем сообщение об ошибке
ФМТ . Println ( ошибаться )
}
}

Следующий вывод появится после выполнения скрипта. Строковое значение «342» здесь преобразовано в 342.

  п4

Перейти наверх


Конкатенация строк Golang

Создайте файл Golang с помощью следующего скрипта, который объединит строки с помощью оператора «+» с помощью функции Printf(). Здесь функция Println() использовалась для печати значения объединенной строки с использованием оператора «+», а функция Printf() использовалась здесь для печати значения объединенной строки с использованием спецификатора «%s». В скрипте объявлены две строковые переменные, которые позже объединяются.

//Добавляем основной пакет
упаковка основной
//Импортируем пакет fmt для печати вывода
Импортировать 'ФМТ'

//Определяем основную функцию
функция основной () {

//Объявляем две строковые переменные
был стр1 , стр2 нить

//Присвоение строковых значений
стр1 '=' 'Голан'
стр2 '=' 'Программирование'

//Объединяем строку с помощью оператора «+»
ФМТ . Println ( «Объединенное строковое значение с использованием оператора «+»:» , стр1 + стр2 )
//Объединение строк с использованием спецификатора '%s'
ФМТ . Печатьf ( «Объединенное строковое значение с использованием спецификатора формата: %s%s \п ' , стр1 , стр2 )
}

Следующий вывод появится после выполнения скрипта.

  п5

Перейти наверх


Многострочная строка Golang

В следующем примере показаны три различных способа печати многострочного текста с использованием сценария Golang. Символ «\n» использовался в первой строковой переменной для создания многострочного текста. Обратные кавычки (`) использовались во второй строке для печати многострочного текста. Обратные кавычки (`) со спецификаторами использовались в третьей строке для печати многострочного текста.

упаковка основной
//Импортируем пакет fmt
Импортировать 'ФМТ'

//Определяем основную функцию
функция основной () {

//Объявляем многострочное строковое значение с символом '\n'
стр1 '=' «Программирование на Golang очень простое \п учить. \п \п '
ФМТ . Печатьf ( стр1 )

//Объявляем многострочное строковое значение с обратными кавычками(`)
стр2 '=' `Узнай
Голанг
от
LinuxHint
Блог.`

ФМТ . Печатьf ( '%s \п \п ' , стр2 )

//Объявляем два строковых значения
язык '=' 'голаны'
разработчик '=' 'Google'
//Объявляем строковое значение с переменными и обратными кавычками
стр3 '=' `%s
является
развитый
к
%s.`

ФМТ . Печатьf ( стр3 , язык , разработчик )
//Добавляем новую строку
ФМТ . Println ()
}

Следующий вывод появится после выполнения скрипта. Здесь напечатан вывод трех строковых переменных, содержащих многострочные строковые значения.

  стр.6

Перейти наверх


Разделение строки Golang

Функция strings.Split() использовалась для разделения строковых данных на основе разделителя. Следующий скрипт принимает строковое значение от пользователя и разделяет строковое значение на основе двоеточия (:). Общее количество разделенных значений и первые два разделенных значения будут напечатаны после выполнения.

упаковка основной
//Импортируем пакеты fmt и strings
Импортировать (
'ФМТ'
'струны'
)

//Определяем основную функцию
функция основной () {

//Объявляем строковую переменную
был ул. нить
//Печать подсказки
ФМТ . Печатьf ( 'Введите строку с двоеточием (:)- ' )
//Принимаем данные от пользователя
ФМТ . Сканировать ( & ул. )

//Определяем разделитель
разделитель '=' ':'
//Разделяем строковое значение
разделенное_значение '=' струны . Расколоть ( ул. , разделитель )
//Подсчитаем количество разделенных значений
длина '=' только ( разделенное_значение )

//Распечатываем количество разделенных значений
ФМТ . Печатьf ( «Общее количество разделенных значений составляет %d \п ' , длина )
//Распечатываем разделенные значения
ФМТ . Println ( «Первое значение разделения:» , Split_value [ 0 ])
ФМТ . Println ( «Второе значение разделения» , разделенное_значение [ 1 ])
}

Следующий вывод появится после выполнения скрипта. Входное значение «golang:google» было разделено на две части на основе двоеточия (:).

  стр7

Перейти наверх


Голанг спринтф

Функция Sprintf() используется в Golang для хранения значений форматированной строки в переменной, как и в других стандартных языках программирования. В следующем скрипте объявлены строка и целочисленная переменная. Значения этих переменных были отформатированы и сохранены в переменной с помощью функции Sprintf().

упаковка основной
//Импортируем пакет fmt
Импортировать 'ФМТ'

//Определяем основную функцию
функция основной () {

//Объявляем две переменные
был ул. нить
был на одной интервал

//Присвоение строкового значения
ул. '=' 'голаны'
//Присвоение числового значения
на одной '=' 2012 год

//Сохраняем объединенное строковое значение в переменной
комбинированный_str '=' ФМТ . Спринтф ( «Первая версия %s выпущена в %d». , ул. , на одной )
//Распечатываем переменную
ФМТ . Печатьf ( «Вывод Sprintf(): \п %s \п ' , комбинированный_str )
}

Следующий вывод появится после выполнения скрипта.

  стр.8

Перейти наверх


Перечисление Голанга

Перечисление или перечислитель использовались в Golang для объявления типа данных группы связанных константных значений. Объявление типа перечисления в Golang отличается от других языков программирования. Был объявлен тип перечисления из 12 значений, а числовое значение конкретного значения перечисления было напечатано позже.

упаковка основной
//Импортируем пакет fmt
Импортировать 'ФМТ'

//Объявляем тип для хранения значения месяца в виде числа (1-12)
тип Месяц интервал

//Объявляем константы для значения каждого месяца, начиная с 1
константа (
Январь месяц '=' йота + 1
февраль
Мар
апрель
Может
июнь
июль
август
Сентябрь
октябрь
ноябрь
декабрь
)

//Объявляем основную функцию
функция основной () {
//Объявляем переменную со значением месяца
был М_номер '=' Может
//Распечатываем соответствующее числовое значение месяца
ФМТ . Println ( 'Число месяца равно ' , М_номер )
}

Следующий вывод появится после выполнения скрипта. Соответствующее числовое значение мая равно 5.

  стр.9

Перейти наверх


Голанговая структура

Структура или структура используется в Golang для объявления типа, содержащего различные типы переменных. Это полезно для хранения табличных данных или нескольких записей. В следующем скрипте объявлена ​​структурная переменная из четырех элементов. Затем были добавлены две записи с использованием определенной переменной структуры. Способ печати значений структуры разными способами был показан в последней части скрипта.

упаковка основной
//Импортируем пакет fmt
Импортировать 'ФМТ'

//Определяем структуру из четырех элементов
тип Продукт структура {
идентификатор нить
имя нить
размер нить
цена интервал
}

функция основной () {

//Объявляем первую структурную переменную
продукт1 '=' Продукт { 'р-1209' , «Жесткий диск» , «5 ТБ» , 80 }
//Объявляем вторую структурную переменную
продукт2 '=' Продукт { 'р-7342' , «Мышка» , '' , пятнадцать }

//Распечатываем переменные структуры
ФМТ . Println ( «Первый продукт:» , продукт1 )
ФМТ . Println ( «Второй продукт:» , продукт2 )

//Распечатываем четыре значения первой структурной переменной отдельно
ФМТ . Println ( «Первая информация о продукте:» )
ФМТ . Println ( 'ИДЕНТИФИКАТОР: ' , продукт1 . идентификатор )
ФМТ . Println ( 'Имя: ' , продукт1 . имя )
ФМТ . Println ( 'Размер: ' , продукт1 . размер )
ФМТ . Println ( 'Цена: ' , продукт1 . цена )
}

Следующий вывод появится после выполнения скрипта.

  стр.10

Перейти наверх


Голанский массив

Переменная массива используется в Golang для хранения нескольких значений определенного типа данных, как и в других стандартных языках программирования. В скрипте показан способ объявления и доступа к массиву строковых значений и массиву числовых значений.

упаковка основной
//Импортируем пакет fmt
Импортировать 'ФМТ'

функция основной () {

//Объявляем массив строковых значений
str_arr '=' [ 4 ] нить { «Google ком» , 'аск.ком' , 'бинг.ком' , 'you.com' }
//Распечатываем массив строк
ФМТ . Println ( 'Значения строкового массива: ' , str_arr )
//Распечатываем третий элемент массива
ФМТ . Println ( «Третье значение массива» , str_arr [ 2 ])

//Объявляем массив числовых значений
int_arr '=' [ 6 ] интервал { 65 , 3. 4 , 12 , 81 , 52 , 70 }
//Распечатываем массив целых чисел
ФМТ . Println ( 'Значения целочисленного массива: ' , int_arr )
//Распечатываем четвертый элемент массива
ФМТ . Println ( «Четвертое значение массива» , int_arr [ 3 ])
}

Следующий вывод появится после выполнения скрипта.

  стр.11

Перейти наверх


Голанговые наборы

Набор — это еще одна структура данных Golang для хранения коллекции различных значений. Он используется для хранения уникальных значений в объекте. В Golang нет встроенной структуры данных, как в других языках программирования. Но эту функцию можно реализовать, используя пустую структуру {} и карту. В следующем скрипте заданная переменная строк была объявлена ​​с использованием карты с пустой структурой. Затем в набор были добавлены три значения, одно значение было удалено и одно значение снова добавлено в набор. Значения набора напечатаны вместе и по отдельности.

упаковка основной
//Импортируем пакет fmt
Импортировать 'ФМТ'

функция основной () {
//Определяем набор строк
только '=' карта [ нить ] структура {}{}
//Вставляем три элемента в набор, используя пустую структуру
только [ 'Идти' ] '=' структура {}{}
только [ 'Баш' ] '=' структура {}{}
только [ «Питон» ] '=' структура {}{}

//Распечатываем текущие существующие элементы набора
ФМТ . Println ( только )

//удаляем элемент из набора
удалить ( только , «Питон» )

//Добавляем новый элемент в набор
только [ 'Джава' ] '=' структура {}{}

//Распечатываем заданные значения после удаления и добавления элемента
ФМТ . Println ( только )

ФМТ . Печатьf ( ' \п Установленные значения: \п ' )
//Распечатываем каждый элемент набора отдельно
для л '=' диапазон только {
ФМТ . Println ( л )
}
}

Следующий вывод появится после выполнения скрипта.

  стр12

Перейти наверх


Голанг для цикла

Цикл for можно использовать по-разному и для разных целей в Golang. Использование трех выражений для цикла показано в следующем скрипте. Цикл будет повторяться 5 раз, чтобы принять 5 входных значений, и сумма этих входных значений будет выведена позже.

упаковка основной
//Импортируем пакет fmt
Импортировать 'ФМТ'

функция основной () {

//Объявляем целочисленную переменную
был число интервал
//Объявляем переменную для хранения значения суммы
был сумма '=' 0
//Определяем цикл for
для н '=' 1 ; п < '=' 5 ; н ++ {
//Печать подсказки
ФМТ . Печатьf ( «Введите число:» )
//Принимаем данные от пользователя
ФМТ . Сканировать ( & число )
//Добавляем входное число с помощью переменной суммы
сумма '=' сумма + число
}
//Распечатываем результат суммирования
ФМТ . Печатьf ( «Сумма пяти входных значений равна %d \п ' , сумма )

}

Следующий вывод появится после выполнения скрипта. Сумма 6, 3, 4, 7 и 9 равна 29.

  стр. 13

Перейти наверх


Голанг для диапазона

Диапазон используется в цикле for в Golang для доступа к строке, массиву и карте. Способ доступа к массиву строк с помощью цикла for с диапазоном показан в следующем скрипте. Первый цикл for печатает только значения массива, а второй цикл for печатает индексы и значения массива.

упаковка основной
//Импортируем пакет fmt
Импортировать 'ФМТ'

функция основной () {

//Объявляем массив строк
цветы '=' [ 4 ] нить { 'Роза' , 'Лили' , 'Далия' , «Солнечный цветок» }

ФМТ . Println ( «Значения массива:» )
//Распечатываем значения массива
для _ , вал '=' диапазон цветы {
ФМТ . Println ( вал )
}

ФМТ . Println ( «Индексы и значения массива:» )
//Распечатываем значения массива по индексу
для в , вал '=' диапазон цветы {
ФМТ . Печатьf ( '%d := %s \п ' , в + 1 , вал )
}
}

Следующий вывод появится после выполнения скрипта.

  стр. 14

Перейти наверх


Голанг во время цикла

В Golang нет цикла while, как в других языках программирования. Однако функцию цикла while можно реализовать в Golang с помощью цикла for. Способ реализации цикла while с использованием цикла for показан в следующем сценарии. Цикл for будет повторяться 4 раза и принимать четыре числа. Сумма этих чисел с дробным значением будет напечатана позже.

упаковка основной
//Импортируем пакет fmt
Импортировать 'ФМТ'


функция основной () {
прилавок '=' 1
сумма '=' 0 . 0
был число float64
для счетчик < '=' 4 {
//Печать подсказки
ФМТ . Печатьf ( 'Введите число: ' )
//Принимаем данные от пользователя
ФМТ . Сканировать ( & число )
//Добавляем входное число с помощью переменной суммы
сумма '=' сумма + число
//Увеличиваем счетчик на 1
прилавок ++
}
//Распечатываем результат суммирования
ФМТ . Печатьf ( «Сумма четырех входных значений равна %0,2f \п ' , сумма )
}

Следующий вывод появится после выполнения скрипта. Сумма 6,8, 3,2, 8,5 и 4,9 равна 23,40.

  стр.15

Перейти наверх


Голанг продолжить

Оператор continue используется в любом цикле для пропуска определенных операторов в зависимости от условия. В следующем сценарии цикл for использовался для повторения цикла, который пропускает значения второго и четвертого значений массива с помощью оператора continue.

упаковка основной
//Импортируем пакет fmt
Импортировать 'ФМТ'


функция основной () {
прилавок '=' 1
сумма '=' 0 . 0
был число float64
для счетчик < '=' 4 {
//Печать подсказки
ФМТ . Печатьf ( 'Введите число: ' )
//Принимаем данные от пользователя
ФМТ . Сканировать ( & число )
//Добавляем входное число с помощью переменной суммы
сумма '=' сумма + число
//Увеличиваем счетчик на 1
прилавок ++
}
//Распечатываем результат суммирования
ФМТ . Печатьf ( «Сумма четырех входных значений равна %0,2f \п ' , сумма )
}

Следующий вывод появится после выполнения скрипта.

  стр.16

Перейти наверх


Корпус переключателя Golang

Оператор Switch-Case в Golang аналогичен другим языкам программирования, но для каждого оператора Case в Golang не требуется оператор Break. Способ определения нескольких значений регистра внутри блока переключателя показан в следующем примере.

упаковка основной
//Импортируем пакет fmt
Импортировать 'ФМТ'

функция основной () {

был н интервал
//Печать подсказки
ФМТ . Печатьf ( 'Введите число месяца: ' )
//Принимаем данные от пользователя
ФМТ . Сканировать ( & н )

//Печать сообщения на основе соответствующего значения регистра
выключатель н {
случай 1 , 2 , 3 , 4 :
ФМТ . Println ( «Зимний семестр». )

случай 5 , 6 , 7 , 8 :
ФМТ . Println ( «Летний семестр». )

случай 9 , 10 , одиннадцать , 12 :
ФМТ . Println ( 'Осенний семестр.' )

по умолчанию :
ФМТ . Println ( «Значение месяца выходит за пределы диапазона». )
}
}

Следующий вывод появится после выполнения скрипта.

  стр.17

Перейти наверх


Голанг случайное число

Пакет math/rand использовался в Golang для генерации случайных чисел. Способ генерации четырех типов случайных чисел показан в следующем скрипте. Функция rand.Int() используется для генерации длинного целого случайного числа. Функция rand.Intn(n) используется для генерации целого случайного числа определенного диапазона, и наибольшее значение будет передано в качестве значения аргумента функции. 999 устанавливается в качестве значения аргумента в скрипте. Функция rand.Float32() используется для генерации короткого дробного случайного числа, а функция rand.Float64() используется для генерации длинного дробного случайного числа.

//Добавляем основной пакет
упаковка основной
//Импортируем необходимые модули
Импортировать (
'ФМТ'
'время'
'математика/ранд'
)

функция основной () {
//Устанавливаем начальное число для генерации случайного числа
ранд . Семя ( время . Сейчас () . UnixNano ())
//Распечатываем сгенерированное случайное целое число
ФМТ . Println ( 'Случайное целое значение: ' , ранд . Int ())
//Распечатываем случайное целое число в пределах 999
ФМТ . Println ( 'Случайное целое значение с диапазоном: ' , ранд . Int ( 999 ))
//Распечатываем случайное 32-битное число с плавающей запятой
ФМТ . Println ( 'Случайное 32-битное значение с плавающей запятой: ' , ранд . Плавающее32 ())
//Распечатываем случайное 64-битное число с плавающей запятой
ФМТ . Println ( 'Случайное 64-битное значение с плавающей запятой: ' , ранд . Плавающее64 ())
}

Следующий вывод появится после выполнения скрипта.

  стр. 18

Перейти наверх


Голанг сон

Функция time.Sleep() используется в Golang для приостановки выполнения скрипта на определенный период. Следующий скрипт рассчитает среднее значение трех чисел и подождет 3 секунды, прежде чем завершить выполнение скрипта.

//Добавляем основной пакет
упаковка основной
//Импортируем необходимые пакеты
Импортировать (
'ФМТ'
'время'
)
функция основной () {

ФМТ . Println ( 'Начать выполнение скрипта...' )
//Определяем три переменные
а '=' 40
б '=' 30
с '=' 29
//Распечатываем переменные
ФМТ . Печатьf ( «Три числа: %d, %d, %d \п ' , а , б , с )
ФМТ . Println ( «Вычисление среднего трех чисел…» )
среднее '=' ( а + б + с ) / 3
//Задержка на 3 секунды
время . Спать ( 3 * время . Второй )
//Распечатываем результаты
ФМТ . Печатьf ( «Среднее значение %d \п ' , среднее )
ФМТ . Println ( «Программа прекращена». )
}

Следующий вывод появится после выполнения скрипта.

  стр. 19

Перейти наверх


Золотое время

Пакет времени используется в Golang для чтения текущей даты и времени. Этот пакет имеет множество методов и свойств для чтения даты и времени разными способами. Дата и время «Пн, 2 января 15:04:05 -07:00 MST 2006» используются в качестве справочного значения в Golang для доступа к дате и времени. Использование пакета времени показано в следующем примере.

упаковка основной
//Импортируем необходимые пакеты
Импортировать (
'ФМТ'
'время'
)

функция основной () {
//Читаем текущую дату и время
сегодня '=' время . Сейчас ()
//Распечатываем текущую дату
ФМТ . Печатьf ( 'Сегодня %s. \п ' , сегодня . Формат ( '02 января 2006 г.' ))
//Распечатываем текущую дату и время
ФМТ . Печатьf ( «Текущая дата и время: %s \п .' , сегодня . Формат ( время . RFC1123 ))
}

Следующий вывод появится после выполнения скрипта.

Перейти наверх


Голанг uuid

UUID или универсальный уникальный идентификатор может быть сгенерирован скриптом Golang. Это 128-битное уникальное значение, позволяющее идентифицировать компьютерную систему. Вам необходимо загрузить uuid с сайта github.com/google/uuid перед выполнением следующего сценария.

Перейдите в домашний каталог и выполните следующие команды, чтобы загрузить необходимый пакет для создания сценария uuid с помощью Golang.

$ go mod init uuid
$ иди на github.com / Google / uuid

В следующем сценарии первый uuid создается с помощью функции uuid.New(), которая возвращает уникальный идентификатор. Второй uuid генерируется функцией uuid.NewUUID(), которая возвращает два значения. Значение содержит уникальный идентификатор, а второе значение содержит сообщение об ошибке, если оно существует.

упаковка основной
//Импортируем необходимые пакеты
Импортировать (
'ФМТ'
'github.com/google/uuid'
)
функция основной () {

//Сгенерируем уникальный идентификатор с помощью функции New()
новыйID '=' uuid . Новый ()
ФМТ . Печатьf ( «Сгенерированный первый UUID — %s. \п ' , новыйID )

//Сгенерируем уникальный идентификатор с помощью функции NewUUID()
новыйID , ошибаться '=' uuid . НовыйUUID ()
//Проверяем наличие ошибки
если ошибаться == ноль {
ФМТ . Печатьf ( «Сгенерированный второй UUID — %s. \п ' , новыйID )
} еще {
ФМТ . Println ( ошибаться )
}
}

Следующий вывод появится после выполнения скрипта.

  стр.21

Перейти наверх


Golang прочитать файл

io/ioutil Пакет Golang используется для чтения содержимого файла. Функция ReadFile() этого пакета считывает все содержимое файла. Эта функция возвращает полное содержимое файла в переменную, если файл существует, в противном случае будет возвращено сообщение об ошибке. Способ чтения полного содержимого существующего текстового файла показан в следующем скрипте.

//Добавляем основной пакет
упаковка основной
//Импортируем необходимые пакеты
Импортировать (
'ио/ioutil'
'ФМТ'
'бревно'
)

функция основной () {

//Читаем текстовый файл
текст , ошибаться '=' ioutil . ЧтениеФайла ( 'Языки.txt' )
//Проверяем наличие ошибки
если ошибаться == ноль {
ФМТ . Печатьf ( «Содержимое файла: \п \п ' )
ФМТ . Println ( нить ( текст ))
} еще {
бревно . Фатальф ( «Ошибка чтения файла: %v» , ошибаться )
}

}

Следующий вывод появится после выполнения скрипта.

  стр.22

Перейти наверх


Golang читает файл построчно

Пакет Golang «bufio» используется для построчного чтения содержимого файла. В следующем сценарии метод bufio.NewScanner() использовался для создания объекта для чтения файла. Далее функция Scan() использовалась в цикле для чтения и печати каждой строки файла.

//Добавляем основной пакет
упаковка основной
//Импортируем необходимые пакеты
Импортировать (
'ФМТ'
'ты'
'буфио'
)
функция основной () {

//Открываем текстовый файл для чтения
фх , ошибаться '=' ты . Открыть ( 'Языки.txt' )
//Проверяем наличие ошибки
если ошибаться == ноль {
//Сканируем содержимое файла
читать '=' буфио . НовыйСканер ( фх )
//Читаем файл построчно
для читать . Сканировать () {
ФМТ . Println ( читать . Текст ())
}
} еще {
ФМТ . Println ( ошибаться )
}
//Закрываем файл
отложить фх . Закрывать ()
}

Следующий вывод появится после выполнения скрипта.

  стр.23

Перейти наверх


Голанг запись в файл

ты пакет Golang используется для открытия файла для записи и НаписатьСтроку() Функция используется для записи содержимого в файл. Способ создания и записи текстового файла из трех строк заключается в использовании ты упаковка.

упаковка основной
//Импортируем необходимые пакеты
Импортировать (
'ФМТ'
'ты'
)

функция основной () {

//Открываем файл для записи
фх , ошибка1 '=' ты . Создавать ( 'предметы.txt' )
//Проверяем наличие ошибки создания файла
если ошибка1 == ноль {
//Записываем в файл
_ , ошибка2 '=' фх . НаписатьСтроку ( 'Ручка \п Карандаш \п Линейка \п ' )
//Проверяем наличие ошибки записи файла
если ошибка2 '=' ноль {
ФМТ . Println ( 'Произошла ошибка записи файла. \п ' )
}
} еще {
ФМТ . Println ( 'Произошла ошибка создания файла. \п ' )
}
//Закрываем файл
отложить фх . Закрывать ()
}

Следующий вывод появится после выполнения скрипта. Вывод показывает, что файл items.txt был успешно создан.

  стр.24

Перейти наверх

Golang проверяет, существует ли файл

ты Пакет Golang можно использовать для проверки существования файла. В следующем скрипте путь к файлу будет взят из скрипта. Если путь не существует, функция os.State() вернет os.ErrNotExist ошибка.

упаковка основной
//Импортируем необходимый модуль
Импортировать (
'ошибки'
'ФМТ'
'ты'
)

функция основной () {
был Путь к файлу нить
ФМТ . Печатьf ( 'Введите существующее имя файла: ' )
//Возьмем путь к файлу у пользователя
ФМТ . Сканировать ( & Путь к файлу )
//Проверяем путь к файлу
_ , ошибка '=' ты . Стат ( Путь к файлу )

//Проверяем вывод os.Stat
если ! ошибки . Является ( ошибка , ты . ErrNotExist ) {
ФМТ . Println ( «Файл найден». )
} еще {
ФМТ . Println ( «Файл не найден». )
}
}

Следующий вывод появится после выполнения скрипта.

  стр.25

Перейти наверх


Голанские CSV

«кодировка/csv» Пакет используется в Golang для чтения содержимого файла CSV. csv.NewReader() Функция используется для чтения файла CSV. Создайте файл CSV перед выполнением сценария этого примера. Здесь клиенты.csv файл использовался, чтобы показать способ чтения файла CSV.

упаковка основной
//Импортируем необходимые пакеты
Импортировать (
'кодировка/csv'
'ФМТ'
'ты'
)

функция основной () {
//Открываем CSV-файл для чтения
фх , ошибаться '=' ты . Открыть ( 'клиенты.csv' )
//Проверяем наличие ошибки
если ошибаться '=' ноль {
ФМТ . Println ( ошибаться )
} еще {
//Создаем объект для чтения файла CSV
сканер '=' csv . НоваяЧтение ( фх )
//Читаем все записи CSV-файла
записи , _ '=' сканер . Читать все ()
//Читаем CSV-файл построчно
для _ , р '=' диапазон записи {
для _ , с '=' диапазон р {
ФМТ . Печатьf ( '%s', , с )
}
ФМТ . Println ()
}
}
//Закрываем файл
отложить фх . Закрывать ()
}

Следующий вывод появится после выполнения скрипта.

  стр.26

Перейти наверх


Голанг Ямл

ямл.Маршал() Функция используется в Golang для чтения содержимого данных yaml. Вам необходимо скачать ямл пакет для использования ямл.Маршал() . Перейдите в домашний каталог и выполните следующую команду, чтобы загрузить ямл упаковка.

$ иди возьми < а href '=' 'http://gopkg.in/yaml.v2' > gopkg.in / yaml.v2 а >

В следующем скрипте была объявлена ​​структурная переменная из четырех элементов, которая позже использовалась для определения объекта yaml с данными. Далее функция yaml.Marshal() использовалась для доступа к данным yaml.

упаковка основной
//Импортируем необходимые пакеты
Импортировать (
'ФМТ'
'gopkg.in/yaml.v2'
)

//Объявляем структуру из 4 элементов
тип Книга структура {
Заголовок нить
Автор нить
Публикация нить
Цена нить
}

функция основной () {

//Создаем объект структуры
книга1 '=' Книга {
Заголовок : «Учимся Го» ,
Автор : «Джон Боднер» ,
Публикация : 'О'Релли' ,
Цена : «39 долларов» ,
}

//Читаем данные yaml на основе структуры
y_data , ошибаться '=' ямл . Маршалл ( &книга1 )

//Проверяем наличие ошибки
если ошибаться == ноль {
//Распечатываем данные yaml
ФМТ . Println ( нить ( y_data ))
} еще {
ФМТ . Печатьf ( «Ошибка при маршалинге. %v» , ошибаться )
}
}

Следующий вывод появится после выполнения скрипта.

  стр.27

Перейти наверх


HTTP-запрос на Голанге

сеть/http Пакет Golang используется для отправки http-запросов на веб-сайт. Функция http.Get() используется для отправки запроса. Возвращает ответ от сайта или сообщение об ошибке. Способ отправки http-запроса на сайт, https://example.com было показано в следующем сценарии.

упаковка основной
//Импортируем необходимые пакеты
Импортировать (
'ФМТ'
'сеть/http'
)

функция основной () {
//Отправляем GET-запрос на сайт
рез , ошибаться '=' http . Получать ( 'https://example.com' )
//Проверяем наличие ошибки
если ошибаться == ноль {
//Распечатываем ответ, отправленный сайтом
ФМТ . Println ( рез )
} еще {
//Распечатываем сообщение об ошибке
ФМТ . Println ( ошибаться )
}
}

Следующий вывод появится после выполнения скрипта.

  стр.28

Перейти наверх


Аргументы командной строки Golang

Значения, передаваемые во время выполнения сценария, называются значениями аргументов командной строки. Пакет os используется для чтения значений аргументов командной строки в Golang. Значения аргументов хранятся в массиве Args[]. Цикл for с диапазоном использовался в сценарии для печати значений аргументов без имени сценария в каждой строке.

упаковка основной
//Импортируем необходимые пакеты
Импортировать (
'ФМТ'
'ты'
)

функция основной () {

ФМТ . Println ( «Все значения аргументов:» )
//Распечатываем все значения аргументов с именем скрипта
ФМТ . Println ( ты . Аргументы )

ФМТ . Println ( «Значения аргументов:» )
//Распечатываем все значения аргументов без имени скрипта
для в , _ '=' диапазон ты . аргументы {
если в == 0 {
продолжать
}
ФМТ . Println ( ты . аргументы [ в ])
}
}

Следующий вывод появится после выполнения скрипта.

  стр.29

Перейти наверх


Обработка ошибок Golang

В Golang нет блока try-catch, как в других языках программирования. Однако ошибки Пакет можно использовать в Golang для обработки ошибок в скрипте. В следующем скрипте у пользователя будет взято целое число. Если пользователь принимает отрицательное число, будет напечатано сообщение об ошибке. ошибки.Новый() Здесь использовалась функция для генерации сообщения об ошибке.

упаковка основной
//Импортируем необходимые пакеты
Импортировать (
'ошибки'
'ФМТ'
)

функция основной () {

был н интервал
ФМТ . Печатьf ( «Введите число:» )
ФМТ . Сканировать ( & н )

//Проверяем введенное значение
результат , ошибаться '=' Позитивный ( н )

//Проверяем наличие ошибки
если ошибаться '=' ноль {
ФМТ . Println ( ошибаться )
} еще {
ФМТ . Печатьf ( '%d %s \п ' , н , результат )
}
}

///Определим функцию для проверки положительного числа
функция Позитивный ( на одной интервал ) ( нить , ошибка ) {
если число < 0 {
возвращаться '' , ошибки . Новый ( «Введите положительное число». )
} еще {
возвращаться «число положительное». , ноль
}
}

Следующий вывод появится после выполнения скрипта.

  стр.30

Перейти наверх

Заключение:

Golang — популярный сейчас язык программирования, в который входит множество полезных пакетов, таких как язык программирования Python. Любой начинающий пользователь может изучить Golang как первый язык программирования, потому что его очень легко выучить. В этом руководстве были объяснены 30 основных примеров Golang, позволяющих изучить Golang с самого начала, и учащиеся смогут писать программы на Golang. Одним из основных ограничений этого языка является то, что он не содержит функций объектно-ориентированного программирования, но хорош для изучения структурного программирования.