关于指针与地址引用的疑惑

最近碰到的一个疑惑
有这样一段代码

type UserController struct {
    service *services.User
}

func (u *UserController) BeforeActivation(b mvc.BeforeActivation) {
    b.Handle("GET", "/{id:int64}", "Get")
}

func (u *UserController) Get(id int64) (user *models.User) {
    return u.service.FindModel(id)
}

实际上这个使用是有效的
在程序中已经可以通过u.service调用到services.User
但是在iris文档或者其他一些使用的例子中都是通过

// NewMovieService 返回默认的 movie 服务层.
func NewMovieService(repo repositories.MovieRepository) MovieService {
    return &movieService{
        repo: repo,
    }
}
-------分割线-------

// 使用数据源中的一些(内存)数据创建 movie 的数据库。
repo := repositories.NewMovieRepository(datasource.Movies)
// 创建 movie 的服务,我们将它绑定到 movie 应用程序。
movieService := services.NewMovieService(repo)
app.Register(movieService)

//初始化控制器
// 注意,你可以初始化多个控制器
// 你也可以 使用 `movies.Party(relativePath)` 或者 `movies.Clone(app.Party(...))` 创建子应用。

app.Handle(new(controllers.MovieController))

new的时候返回引用地址 并且在程序入口注入到相应控制器中
大致查了一下指针与地址引用的区别
但还是想问一下这里直接使用指针会有什么不妥的地方。

讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!