Считайте это просто способом группировки нескольких переменных в одну. Использовать структуры надо там, где удобнее использовать сразу группу переменных.
Например, нам надо передавать в функцию данные пользователя. Мы можем написать
func RegisterUser(name string, surname string, age int)
Но если нам надо будет в другую функцию передавать такие же данные пользователя, нам придется повторять все эти три переменные. А если мы заходим добавить еще место жительства, например, то придется искать все места, где мы передаем эти три переменные и добавлять четвертую. Это неудобно. Поэтому пишем:
type User struct {
Name string
Surname string
Age int
}
func RegisterUser(user User)
Теперь чтобы изменить набор данных, нам достаточно поправить тип. Передавать это в виде одной переменной удобнее. Да и логически данные сгруппированы более понятно.