em go, o uso da palavra -chave difer permite que as funções tenham o código executado no momento de seu retorno, mesmo que ocorra pânico. No entanto, quando se trata de variáveis declaradas de maneiras diferentes em uma função, os resultados podem variar, levando à confusão. adiar func () {i} () retornar i } func main () { fmt.println (c (0)) // imprime 0 }
aqui, eu é declarado como o parâmetro de resultado para a função C1. Quando a declaração de retorno é executada, o valor de I é definido como o valor de retorno. No entanto, a função de adiamento ainda pode modificar o valor de I antes de ser retornado. Isso resulta na saída de 1. adiar func () {i} () retornar 2 } func main () { fmt.println (c2 ()) // imprime 3 }
func c(i int) int { defer func() { i }() return i } func main() { fmt.Println(c(0)) // Prints 0 }
O poder dos parâmetros de resultado nomeado
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3