воскресенье, 30 декабря 2018 г.

Основы Go: результаты функций

Множественные результаты

Функция может возвращать любое количество результатов.

В следующем примере функция swap возвращает две строки.

package main

import "fmt"

func swap(x, y string) (string, string) {
  return y, x
}

func main() {
  a, b := swap("hello", "world")
  fmt.Println(a, b)
}

Результат:

world hello


Именованные возвращаемые значения

В Go возвращаемые значения могут быть именованными. В этом случае они расцениваются как переменные объявленные в начале функции.

Эти имена следует использовать для документирования смысла возвращаемых значений.

return без аргументов возвращает именованные возвращаемые значения, что известно как "голый" возврат.

Такой способ возврата значений следует использовать только в коротких функциях, как в представленном здесь примере. В более длинных функциях это может ухудшить читаемость.

package main

import "fmt"

func split(sum int) (x, y int) {
  x = sum * 4 / 9
  y = sum - x
  return
}

func main() {
  fmt.Println(split(17))
}

Результат:

7 10


Читайте также:


Комментариев нет:

Отправить комментарий