1. В. У мові програмування Go для підключення необхідних пакетів використовується ключове слово import. Це ключове слово дозволяє імпортувати інші пакети у вашу програму, щоб використовувати їх функціонал 2. Г Go, тип змінної визначається автоматично на основі значення, яке ви присвоюєте змінній при ініціалізації. У цьому випадку, -10 є цілим числом, тому змінна value буде мати тип int. 3. Б У мові програмування Go немає типів даних "char," "real," "double," або "ufloat32. 4. Б 5. Г Коли ви оголошуєте константи в блоку const, як ви зробили в вашому прикладі, всі константи, що не мають значення, будуть мати те саме значення, як і попередня константа з виразу. 6. А Зріз з "розгорнутою" довжиною {...} повинен мати точно визначену кількість елементів, і додавання значень в фігурних дужках не допускається. 7. Д Оператор switch використовується для вибору одного з декількох можливих варіантів відповідно до значення виразу. 8. Б 9. Б Операція x++ збільшує значення змінної x на одиницю. 10. Г 11. В перший fmt.Println(s1) виведе масив чисел від 0 до 4 включно, а другий fmt.Println(s2) виведе порожній масив. 12. А Символ "|" використовується для виконання побітового логічного "OR" між двома числами. 13. Б 14. А Оскільки змінні не були ініціалізовані явно, Go присвоює їм значення за замовчуванням: i та f отримують значення 0, b отримує значення false, а s отримує пустий рядок "". 15. Б res спочатку містить значення, яке відповідає ключу 4.0, а потім об'єднує це значення з усіма значеннями в мап 16. В Мова програмування Go дозволяє функціям повертати кілька значень. Це є однією з корисних особливостей Go, і ви можете визначати функції, які повертають більше одного значення. 17. В У мові програмування Go тип даних byte фактично представляє собою псевдонім для типу uint8, що означає, що він може зберігати лише цілі числа від 0 до 255. 18. Г Тотожний вираз можна знайти, використовуючи закони Де Моргана для виразів. Вираз if (x > 3) && (y < 0) означає "якщо x більше 3 і y менше 0." 19. Г Перший виклик intSeq() створює нове замикання і повертає його. Змінна i ініціюється значенням 0. Перший виклик val() викликає замикання, яке було повернене в першому виклику intSeq(), і повертає 1. Потім i в замиканні збільшується на 1. Другий виклик val() викликає те ж саме замикання і повертає 2. i знову збільшується на 1. Після призначення val = intSeq(), val тепер вказує на нове замикання, яке створено в цьому виклику. Змінна i в новому замиканні починається зі значення 0. Перший виклик val() для нового замикання повертає 1, і i в цьому замиканні збільшується на 1. Другий виклик val() для цього ж нового замикання повертає 2, і i знову збільшується на 1.