11. Message Tagger
Example usage
messages := []sms{
{id: "001", content: "Urgent! Last chance to see!"},
{id: "002", content: "Big sale on all items!"},
// Additional messages...
}
taggedMessages := tagMessages(messages, tagger)
// `taggedMessages` will now have tags based on the content.
// 001 = [Urgent]
// 002 = [Promo]Solution
package main
import "strings"
type sms struct {
id string
content string
tags []string
}
func tagMessages(messages []sms, tagger func(sms) []string) []sms {
for i, txt:= range messages{
messages[i].tags = tagger(txt)
}
return messages
}
func tagger(msg sms) []string {
tags := []string{}
lowered := strings.ToLower(msg.content)
if strings.Contains(lowered,"urgent"){
tags = append(tags, "Urgent")
}
if strings.Contains(lowered, "sale"){
tags = append(tags, "Promo")
}
return tags
}