Consultez le code suivant:Le report d'une assignation de zone à une condition de concurrence?
type foo struct {
bar string
}
func f() *foo {
ret := &foo{"before"}
defer func() { ret.bar = "after" }()
return ret
}
func main() {
fmt.Println(f()) // prints "&{after}"
}
La motivation est d'avoir à retourner une struct, mais quelques-uns des champs doivent être réglés que avant de retourner (par exemple un horodatage lorsque la fonction terminée).
Est-ce que le report de l'affectation de zone est une condition de concurrence? Est-ce idiomatique? Y a-t-il un meilleur moyen?
Il n'y a rien ici en même temps, donc il ne peut y avoir course. – JimB
@JimB merci. Est-il idiomatique ou existe-t-il une meilleure façon de le faire? – ale64bit
Pour faire quoi? Quel est l'objectif? Il n'y a pas de raison pour que vous ne puissiez pas définir une variable dans une instruction de report, mais si elle est idiomatique dépend de votre objectif. – Flimzy