Package Declaration
package repositories
- Declares that this file belongs to the
repositories packages.
- Go organize code by package.
-
main is the entry point package; other packages are for organization.
Import Statement
import "project/internal/models"
- imports another package (
models).
- Paths are module-relative (based on the
go.mod name).
Interface Declaration
type UserRepository interface {
GetAllUsers() []models.User
}
-
type <Name> interface {} defines an interface.
-
GetAllUsers() []models.User declares a method:
- Returns a slice(
[]) of User structs from models.
Struct Definition
type userRepo struct{}
- Defines a struct named
userRepo with no fields.
- Structs in Go are like classes or objects, but without methods inline.
Constructor Function
func NewUserRepository() UserRepository {
return &userRepo{}
}
-
func defines a function named NewUserRepository.
- Returns a
UserRepository interface.
-
&userRepo{} creates a pointer to a new userRepo struct.
Method Implementation
func (r *userRepo) GetAllUsers() []models.User {
return []models.User{
{ID: 1},
{ID: 2}
}
}
- This is a method on the struct
userRepo.
-
(r *userRepo) declares a receiver (this in TS).
- Returns a hardcoded slice of
User objects.
Top comments (0)