R
Size: a a a
R
КТ
КТ
x
map[target_string]replace_sring, либо []target_string + []replace_string.strings.Replacer из стандартной библиотеки — достаточно просто создать общий слайс вида []string{target1, replace1, ..., targetN, replaceN} и отдать в strings.NewReplacer)x
КТ
x
КТ
Д
x
Д
x
Д
Y
…
mailChan := make(chan *mail.Message)
go processMail(redis, mailChan)
for _, fileName := range fileNames {
err := ReadFile(mailChan, fileName)
if err !=nil {ololo}
}
close(mailChan)
…
func ReadFile(job chan<- *mailMessage, fileName string) (err error) {
file, err := os.Open(fileName)
…
m, err := mail.ReadMessage(file)
job <- m
}
func processMail(redis writer.ProcessRedis, in <-chan *mail.Message) {
for m := range in {
rcpt := strings.ToLower(m.Header.Get("X-Failed-Recipients"))
….
redis.Insert(record)
}
}
for m := range in {Y
Y
AS
Y
Y
Y