понимание функциональных модификаций в Голанге с Defer
в Golang, DEFE позволяет разработчикам настраивать функции для выполнения после завершения функции, что позволяет после выполнения. Однако проблемы могут возникнуть при попытке изменения значений переменных, объявленных по -разному в одной и той же функции. defer func () {i} () вернуть я } func c1 () (i int) { defer func () {i} () вернуть я } func c2 () (i int) { defer func () {i} () возврат 2 }
в C (0), из -за I, являющегося входным параметром, возвращаемое значение не зависит от отложенного приращения, что приводит к выводу печати 0.
func c(i int) int { defer func() { i }() return i } func c1() (i int) { defer func() { i }() return i } func c2() (i int) { defer func() { i }() return 2 }
, однако, в c2 (), хотя я явно возвращается как 2, отложенный приращение изменяет параметр результата, что приводит к возвращению 3.
Этот принцип применяется как к функциям, так и к методам, где отложенные функции могут получить доступ и изменять именованные параметры результата до их возврата. Следовательно, очень важно рассмотреть, как объявления переменной и модификации отложенной функции влияют на окончательные возвращаемые значения.
]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3