GOLANGPROFI Telegram 160
Ответ на «Если в функции есть return, обязательно ли она вернет то, что указано в return?»

Мы
привыкли, что обычно, если код внутри функции добрался до return, то на выходе мы получим то, что стоит после return. Но в Go есть интересная особенность: если есть именованный выходной параметр (параметры), то функция вернет последнее его значение, несмотря на то, что написано в return.

package main
import "fmt"

// Основной метод
func main() {
// функция возвращает два значения
m, d := calculator(105, 7)

fmt.Println("105 x 7 = ", m)

fmt.Println("105 / 7 = ", d)
}
// функция с именованными аргументами

func calculator(a, b int) (mul int, div int) {

defer func() {
mul = 95
div = 27
}()

// здесь простое назначение т.к. инициализация произошла выше
//функция вернет именно эти переменные
mul = a * b

div = a / b

// здесь у вас есть ключевое слово return

return 1, 2
}

Функция вернет в итоге: 95 и 27.
👍21👎3😁1



tgoop.com/golangprofi/160
Create:
Last Update:

Ответ на «Если в функции есть return, обязательно ли она вернет то, что указано в return?»

Мы
привыкли, что обычно, если код внутри функции добрался до return, то на выходе мы получим то, что стоит после return. Но в Go есть интересная особенность: если есть именованный выходной параметр (параметры), то функция вернет последнее его значение, несмотря на то, что написано в return.

package main
import "fmt"

// Основной метод
func main() {
// функция возвращает два значения
m, d := calculator(105, 7)

fmt.Println("105 x 7 = ", m)

fmt.Println("105 / 7 = ", d)
}
// функция с именованными аргументами

func calculator(a, b int) (mul int, div int) {

defer func() {
mul = 95
div = 27
}()

// здесь простое назначение т.к. инициализация произошла выше
//функция вернет именно эти переменные
mul = a * b

div = a / b

// здесь у вас есть ключевое слово return

return 1, 2
}

Функция вернет в итоге: 95 и 27.

BY Golang Юниор


Share with your friend now:
tgoop.com/golangprofi/160

View MORE
Open in Telegram


Telegram News

Date: |

The court said the defendant had also incited people to commit public nuisance, with messages calling on them to take part in rallies and demonstrations including at Hong Kong International Airport, to block roads and to paralyse the public transportation system. Various forms of protest promoted on the messaging platform included general strikes, lunchtime protests and silent sit-ins. Content is editable within two days of publishing With the “Bear Market Screaming Therapy Group,” we’ve now transcended language. The imprisonment came as Telegram said it was "surprised" by claims that privacy commissioner Ada Chung Lai-ling is seeking to block the messaging app due to doxxing content targeting police and politicians. As five out of seven counts were serious, Hui sentenced Ng to six years and six months in jail.
from us


Telegram Golang Юниор
FROM American