У меня есть строка типа «key1: value1; key2: value2» (строка с шаблоном key:value
, объединенным с ;
).
Теперь я хочу проанализировать эту строку в структуре Go:
type CustomStruct struct {
KeyName1 string `name:"key1" somevalidation:"xxx"`
KeyName2 int `name:"key2" somevalidation:"yyy"`
}
В приведенном выше примере тег struct определяет имя ключа в строке и может обеспечить некоторую проверку его соответствующего значения (он может установить значение по умолчанию в случае сбоя проверки). Например, KeyName2
является значением int
, поэтому я бы хотел, чтобы somevalidation
мог проверить, удовлетворяет ли KeyName2
, скажем, больше 30 и меньше, чем 100.
И в другом сенарио я могу определить другую структуру CustomStruct2
для строки типа key3:value3; key4:value4;
Как я могу эффективно и элегантно архивировать такого рода требования?