Функции

Самый простой способ определить функцию в Go – использовать следующую конструкцию:

func имя(список параметров) (список результатов) {
  // тело функции
} 

Для именования функций в Go принято использовать CamelCase, если имя начинается с заглавной буквы, то функция является экспортируемой.

Список параметров содержит их имена и типы. Типы указываются после имени параметра. Функция может принимать ноль, один или более параметров.

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

func swap(a int, b int) (int, int) {
  return b, a
}

Если функция возвращает только один результат, то принято опускать скобки в списке результатов.

func add(a int, b int) int {
  return a + b
}

Если функция принимает несколько последовательных параметров одного типа, как в примере выше, то принято опускать указание типа для всех параметров, кроме последнего.

func add(a, b int) int {
  return a + b
}

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

Если функция возвращает несколько последовательных именованны результатов одного типа, то так же, как и в списке параметров, тип можно опустить для всех результатов, кроме последнего.

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

func swap(a, b int) (n, m int) {
  n = b
  m = a
  return
}

Задание

Реализуйте функцию PrintTwice(value string), которая печатает на экран переданное значение два раза.

solution.PrintTwice("WoW")
// WoW
// WoW

Советы


Нашли ошибку? Есть что добавить? Пулреквесты приветствуютсяhttps://github.com/hexlet-basics

Упражнение доступно только авторизованным пользователям.

Пожалуйста, авторизуйтесь, это необходимо для отслеживания прогресса выполнения уроков. Если у вас ещё нет учётной записи, то сейчас самое время создать аккаунт.