9
複数のdefer
ステートメントを発行するか、ロジックをパッケージ化する無名関数を延期する方が安全か、より慣れていますか?複数の遅延と遅延無名関数
例:
defer os.Remove(tempFile.Name())
defer tempFile.Close()
構文上記の場合は最小で、まだ延期の順序が実行されるロジックとは逆です。場合
は、以下の複数のラインは、より多くの「構文」はありますが、ロジックは、より自然な順序である:
defer func() {
tempFile.Close()
os.Remove(tempFile.Name())
}()
使用するかを?
'defer'にはパフォーマンスコストがあるだけです(完全な答えではありません)。これは非常に小さく(go1.5.1 linux/amd64に関する私のテストによれば~75 ns)、考慮する価値はないかもしれませんが、それでも注意する必要があります。 – HectorJ