欢迎光临
我们一直在努力

初当GO学长第七天

今天学习了init函数,defer函数,基本结构体的一些知识点。

init函数是一个特殊的函数,有以下特点:

  • 不能被其他函数调用,而是在main函数执行之前,自动被调用。
  • Init函数不能作为参数传入
  • 不能有传入参数和返回值
  • 一个go文件可以有多个init函数,谁在前面谁就先执行
  • defer函数(先进后出),类似于C语言中栈的特点,还有以下特点:

  • 关键字defer用于注册延迟调用
  • 这些调用知道return前才被执行,因此,可以用来做资源清理
  • 多个defer语句,按先进后出的方式执行,谁离return近谁先执行
  • defer语句中的变量,在defer声明时就决定了
  • 定义结构体的基本方法

    // 定义结构体行为的方法

    func (s Student) Study()

    在结构体里面修改名字

    func (s *Student) SetName(name string) {

        s.Name = name

        fmt.Printf("method in:%p\\n", s)

    结构体方法内部:不需要 &,直接用 s.Name,这点我觉得很重要,基本细节。

    结构体里面的组合类似于“继承”结构,子类可以继承父类的特点,反过来不行。结构体的构建很重要,需要多认真思考。

    以上记录纯属个人学习,欢迎大家给出建议,一起加油!

    赞(0)
    未经允许不得转载:171主机测评 » 初当GO学长第七天
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址