Propongo que exponga una variable de retorno bool en el mapa de sincronización, cambiándola de:
func (m * Map) Eliminar (interfaz clave {})
para:
func (m * Map) Delete (key interface {}) bool
El valor de retorno le dice a la persona que llama si el elemento se eliminó del mapa o no (verdadero si la clave estaba en el mapa, falso si la llamada no cambió nada). Parece que Map.Delete llama a Map.delete internamente, que ya tiene los datos de retorno necesarios en algunos casos.
Este cambio no rompería el código existente.
Este cambio no rompería el código existente.
Sí lo haría:
var deleteFn func(interface{}) = m.Delete
Sí, no podemos cambiar ninguna firma de API. Véase también: https://blog.merovius.de/2015/07/29/backwards-compatibility-in-go.html
No podemos cambiar esta firma.
Comentario más útil
Sí lo haría: