Как обратиться к полю структуры в шаблоне html golang?

В шаблоне HTML Golang существует несколько способов обращения к полям структуры. Рассмотрим каждый из них подробно.

Первый способ - использование точечной нотации. Для этого вам необходимо передать структуру в шаблон и затем обратиться к ее полям с помощью точки. Например, если у вас есть структура User с полем Name, вы можете обратиться к нему следующим образом:

<html>
<body>
    <h1>Hello, {{.Name}}</h1>
</body>
</html>

Далее, при рендеринге шаблона, вы будете передавать экземпляр структуры User в функцию Execute:

type User struct {
    Name string
}

func main() {
    user := User{Name: "John"}
    tmpl, _ := template.New("my-template").ParseFiles("template.html")
    tmpl.Execute(w, user)
}

В результате, вместо {{.Name}} будет подставлено значение поля Name из структуры User.

Второй способ - использование методов. Вы можете добавить метод к вашей структуре, который будет возвращать значение нужного вам поля. Например:

type User struct {
    Name string
}

func (u User) GetName() string {
    return u.Name
}

Затем, в шаблоне, вы можете вызвать этот метод следующим образом:

<html>
<body>
    <h1>Hello, {{.GetName}}</h1>
</body>
</html>

Для передачи структуры и рендеринга шаблона вы можете использовать тот же код, что и в первом способе.

В обоих случаях в шаблоне вы также можете использовать условные операторы и циклы для работы с полями структуры. Например, если у вашей структуры User есть поле Age, вы можете проверить его значение и отобразить разные элементы на основе этого условия:

<html>
<body>
    {{if .Age >= 18}}
        <h1>Hello, {{.Name}}</h1>
    {{else}}
        <h1>Sorry, you are not old enough</h1>
    {{end}}
</body>
</html>

Это основные способы обращения к полям структуры в шаблоне HTML Golang. Вы можете выбрать тот, который лучше всего подходит для вашего случая использования.