Вам потребуется реализовать механизм, который может определить, какое поле названо в строке, и сопоставить его с соответствующим полем в структуре.Идентификация поля очень проста: используйте strings.Split
в строке, считанной из файла, разделите ее пробелом и получите первое значение.
Поиск в структуре может потребовать нескольких подходов.Самым простым было бы явно проверить это в условном или аналогичном (я избегал показывать код для чтения файла, поскольку суть вашего вопроса, кажется, совпадает со значениями структуры):
// Struct
var myStruct *UrlData = // some instantiation
// Read line from file
line = // TODO
// Determine the field
parts := strings.Split(line, " ")
name, value := parts[0], parts[1]
// Look up the fields in the struct
switch name {
case "as":
return myStruct.As == value
case "iso":
return myStruct.Iso == value
}
ЭтоТакже возможно использовать отражение, чтобы динамически искать поле структуры по имени в файле, но это будет более сложным, и его следует избегать до тех пор, пока вам не потребуется действительно общее решение (и даже тогда лучше избегать - отражение не является ясным кодом!).