zoukankan      html  css  js  c++  java
  • beego 导入一个普通的包都会执行init方法,如果是struct就不会执行

    default.go

    package controllers
    
    import (
        "beego-test/models"
        "beego-test/service"
        "github.com/astaxie/beego"
    )
    
    type MainController struct {
        beego.Controller
    }
    
    func (c *MainController) Get() {
        c.Data["Website"] = "beego.me"
        c.Data["Email"] = "astaxie@gmail.com"
        service.Print()
        models.Mmodel()
        new(service.Service2).Print2()
        c.TplName = "index.tpl"
    }

    models.go

    package models
    
    import (
        "fmt"
    )
    
    func init() {
        fmt.Println("...initMmodel...")
    }
    
    func Mmodel() {
        fmt.Println("...PrintMmodel...")
    }

    service.go

    package service
    
    import (
        "fmt"
    )
    
    func init() {
        fmt.Println("...init...")
    }
    
    func Print() {
        fmt.Println("...Print...")
    }

    service1.go

    package service
    
    import (
        "fmt"
    )
    
    func init() {
        fmt.Println("...init1...")
    }
    
    func Print1() {
        fmt.Println("...Print1...")
    }

    service2.go

    package service
    
    import (
        "fmt"
    )
    
    type Service2 struct {
    }
    
    func (this *Service2) init() {
        fmt.Println("...init.service2..")
    }
    
    func (this *Service2) Print2() {
        fmt.Println("...Print.service2..")
    }
  • 相关阅读:
    TSQL语句
    约束
    数据库创建
    递归
    函数
    结构体
    集合
    jquery中的select
    正则表达式
    多表单提交
  • 原文地址:https://www.cnblogs.com/yaowen/p/8370966.html
Copyright © 2011-2022 走看看