in goの変数宣言に対する延期の効果を理解すると、延期キーワードの使用により、パニックが発生したとしても、返品時に関数が実行されるようになります。ただし、関数内で異なる方法で宣言された変数に関しては、結果は変化し、混乱につながる可能性があります。 defer func(){i}() 私を返します } func main(){ fmt.println(c(0))//印刷0 }
ここで、私はC1関数の結果パラメーターとして宣言されています。 returnステートメントが実行されると、iの値は返品値に設定されます。ただし、延期関数は、返される前にiの値を変更することが許可されています。これにより、出力は1になります。 defer func(){i}() 戻る2 } func main(){ fmt.println(c2())//印刷3 }
func c(i int) int { defer func() { i }() return i } func main() { fmt.Println(c(0)) // Prints 0 }
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3