golang中的init函数能否返回值?

golang中的init函数能否返回值?,go,Go,有人能提出任何其他方法来处理在我的server.go程序的init函数之外初始化数据库的问题吗 我在程序中使用MySQL,我需要初始化、连接并将处理程序发送到控制器。您不能使用init()函数返回值,但您可以使用它初始化全局(包)变量,以便您可以尝试类似的操作: package mysql var Conn Connection func init(){ Conn = ... } 现在控制器可以访问您的连接导入您的包并访问您已经初始化的连接 package controllers

有人能提出任何其他方法来处理在我的server.go程序的init函数之外初始化数据库的问题吗


我在程序中使用MySQL,我需要初始化、连接并将处理程序发送到控制器。

您不能使用
init()
函数返回值,但您可以使用它初始化全局(包)变量,以便您可以尝试类似的操作:

package mysql

var Conn Connection

func init(){
    Conn = ...
}
现在控制器可以访问您的连接导入您的包并访问您已经初始化的连接

package controllers

import(
    "mysql"
)

func abc(){
    mysql.Conn ...
}

用代码支持您的问题总是好的。从您的问题来看,不清楚在init方法中初始化DB时您面临什么问题,以及为什么您希望在init方法之外使用另一种方法您不需要从
init
函数初始化DB。我想,您可以从调用
initDB()
函数的
main()
函数进行初始化