Я пытаюсь создать новый тип Go, основанный на string
, но должен соответствовать шаблону (Slack username, например @ben
).Как создать тип Go, полученный из строки, соответствующей шаблону?
При использовании типа будет выглядеть примерно так:
var user SlackUser
user = SlackUser("@ben")
fmt.Println(user) //This should print: @ben
Если соответствует шаблону, NewSlackUser
будет работать. Если это не так, это вызовет ошибку.
Шаблон для соответствия, который основан на this, является:
^@[a-z0-9][a-z0-9._-]*$
(я новичок в Go, так что любая поправка к моему подходу очень ценится)
См https://golang.org/pkg/regexp/ – Volker