GO_INTERVIEW_LIB Telegram 448
💬 Как в Go передаются значения в функции, перед которыми указано defer?

В Go функции, перед которыми указано defer, откладываются до тех пор, пока не завершится текущий блок кода или текущая функция, в которой был вызван defer.

Аргументы для таких функций вычисляются немедленно, но сама функция выполняется позже, когда сработает отложенное действие. Это значит, что все значения аргументов, переданных в defer функцию, фиксируются в момент объявления defer.

Рассмотрим на примере:
package main

import "fmt"

func main() {
x := 10
defer fmt.Println("deferred:", x) // Аргумент x вычисляется сейчас, но вывод откладывается
x = 20
fmt.Println("immediate:", x)
}

В этом коде, хотя x изменяется после объявления defer, отложенная функция fmt.Println получит значение x, которое было в момент объявления defer, то есть 10. Поэтому вывод будет следующим:

immediate: 20
deferred: 10
👍36



tgoop.com/go_interview_lib/448
Create:
Last Update:

💬 Как в Go передаются значения в функции, перед которыми указано defer?

В Go функции, перед которыми указано defer, откладываются до тех пор, пока не завершится текущий блок кода или текущая функция, в которой был вызван defer.

Аргументы для таких функций вычисляются немедленно, но сама функция выполняется позже, когда сработает отложенное действие. Это значит, что все значения аргументов, переданных в defer функцию, фиксируются в момент объявления defer.

Рассмотрим на примере:

package main

import "fmt"

func main() {
x := 10
defer fmt.Println("deferred:", x) // Аргумент x вычисляется сейчас, но вывод откладывается
x = 20
fmt.Println("immediate:", x)
}

В этом коде, хотя x изменяется после объявления defer, отложенная функция fmt.Println получит значение x, которое было в момент объявления defer, то есть 10. Поэтому вывод будет следующим:

immediate: 20
deferred: 10

BY Библиотека Go для собеса | вопросы с собеседований


Share with your friend now:
tgoop.com/go_interview_lib/448

View MORE
Open in Telegram


Telegram News

Date: |

With the sharp downturn in the crypto market, yelling has become a coping mechanism for many crypto traders. This screaming therapy became popular after the surge of Goblintown Ethereum NFTs at the end of May or early June. Here, holders made incoherent groaning sounds in late-night Twitter spaces. They also role-played as urine-loving Goblin creatures. Image: Telegram. It’s yet another bloodbath on Satoshi Street. As of press time, Bitcoin (BTC) and the broader cryptocurrency market have corrected another 10 percent amid a massive sell-off. Ethereum (EHT) is down a staggering 15 percent moving close to $1,000, down more than 42 percent on the weekly chart. The main design elements of your Telegram channel include a name, bio (brief description), and avatar. Your bio should be: Ng, who had pleaded not guilty to all charges, had been detained for more than 20 months. His channel was said to have contained around 120 messages and photos that incited others to vandalise pro-government shops and commit criminal damage targeting police stations.
from us


Telegram Библиотека Go для собеса | вопросы с собеседований
FROM American