Создать в гите директорию go-core-task. Каждое задание делать в отдельной верке этой директории и потом слить все задания в master. Структура дирректории должна выглядеть примерно так:
go-core-task/
├── 1/
│     ├── main_1.go
│     └── main1_test.go
├── 2/
│     ├── main_2.go
│     └── main2_test.go
...
├── 9/
│     ├── main_9.go
│     └── main9_test.go
└── README.md
Выполнив задания, ссылку на репозиторий присылать своему руководителю направления (Golang)
Напишите программу на Go, которая:
- Создает несколько переменных различных типов данных:
int (три числа в десятичной, восьмеричной и шеснадцатиричной системах)
float64
string
bool
complex64
- Определяет тип каждой переменной и выводит его на экран.
- Преобразует все переменные в строковый тип и объединяет их в одну строку.
- Преобразовать эту строку в срез рун.
- Захэшировать этот срез рун SHA256, добавив в середину соль "go-2024" и вывести результат.
- Напишите unit тесты к созданным функциям
Напишите main функцию, в которой протестируете весь вышеописанный функционал. Выведите результаты на экран.
Входные числа из пункта 1 могут быть:
var numDecimal int = 42           // Десятичная система
var numOctal int = 052            // Восьмеричная система
var numHexadecimal int = 0x2A     // Шестнадцатиричная система
var pi float64 = 3.14             // Тип float64
var name string = "Golang"         // Тип string
var isActive bool = true           // Тип bool
var complexNum complex64 = 1 + 2i  // Тип complex64
- 
Создайте слайс целых чисел originalSlice, содержащий 10 произвольных значений, которые генерируются случайным образом (при каждом запуске должны получаться новые значения) 
- 
Напишите функцию sliceExample, которая принимает слайс и возвращает новый слайс, содержащий только четные числа из исходного слайса. 
- 
Напишите функцию addElements, которая принимает слайс и число. Функция должна добавлять это число в конец слайса и возвращать новый слайс. 
- 
Напишите функцию copySlice, которая принимает слайс и возвращает его копию. Убедитесь, что изменения в оригинальном слайсе не влияют на его копию. 
- 
Напишите функцию removeElement, которая принимает слайс и индекс элемента, который нужно удалить. Функция должна возвращать новый слайс без элемента по указанному индексу. 
- 
Напишите main функцию, в которой протестируете все вышеописанные функции. Выведите результаты на экран. 
- Напишите unit тесты к созданным функциям
Примечание.
В качестве originalSlice можно использовать originalSlice := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
Реализуйте структуру данных StringIntMap, которая будет использоваться для хранения пар "строка - целое число". Ваша структура должна поддерживать следующие операции:
- 
Добавление элемента: Метод Add(key string, value int), который добавляет новую пару "ключ-значение" в карту. 
- 
Удаление элемента: Метод Remove(key string), который удаляет элемент по ключу из карты. 
- 
Копирование карты: Метод Copy() map[string]int, который возвращает новую карту, содержащую все элементы текущей карты. 
- 
Проверка наличия ключа: Метод Exists(key string) bool, который проверяет, существует ли ключ в карте. 
- 
Получение значения: Метод Get(key string) (int, bool), который возвращает значение по ключу и булевый флаг, указывающий на успешность операции. 
- Напишите unit тесты к созданным функциям
На вход подаются два неупорядоченных слайса строк. Например:
slice1 := []string{"apple", "banana", "cherry", "date", "43", "lead", "gno1"}
slice2 := []string{"banana", "date", "fig"}
Напишите функцию, которая возвращает слайс строк, содержащий элементы, которые есть в первом слайсе, но отсутствуют во втором.
- Напишите unit тесты к созданным функциям
На вход подаются два неупорядоченных слайса int любой длины. Например:
a := []int{65, 3, 58, 678, 64}
b := []int{64, 2, 3, 43}
Напишите функцию, которая проверяет, есть ли пересечения значений между двумя слайсами и возвращает:
- bool значение есть ли хотя бы одно пересечение в значениях входных срезов
- срез []int с пересеченными значениями (если таких значений нет, то возвращать пустой срез).
Т. е. если взать слайсы a и b из премере, то вернет true, []int{64, 3}.
- Напишите unit тесты к созданным функциям
Напишите генератор случайных чисел используя небуфферизированный канал.
- Напишите unit тесты к созданным функциям
Напишите программу на Go, которая сливает N каналов в один.
- Напишите unit тесты к созданным функциям
Сделать кастомную waitGroup на семафоре, не используя sync.WaitGroup.
- Напишите unit тесты к созданным функциям
Сделать конвейер чисел Даны два канала. В первый пишутся числа типа uint8. Нужно, чтобы числа читались из первого канала по мере поступления, затем эти числа должны преобразовываться в float64 и возводиться в куб и результат записывался во второй канал.
Напишите main функцию, в которой протестируете весь вышеописанный функционал. Выведите результаты на экран.
- Напишите unit тесты к созданным функциям