将对象传递给其他包

时间:2017-02-05 10:04:09

标签: go struct

我有一个main函数,我在其中启动一个变量,一个客户端。例如:

func main() {
  myClient := my.MustNewClient("localhost")
}

现在我想将此客户端传递给另一个包,但由于某种原因,我无法弄清楚如何执行此操作。我的包看起来像这样:

package rest

import (
    "net/http"
    "github.com/Sirupsen/logrus"
)

type AssetHandler struct {
    mc my.Client
}

func (f AssetHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
    logrus.Info("bla")
    // here I want to use the client
    mc.SomeFunctionIntheClient()

}

所以我的问题是,我如何在我的包装中使用客户端(主要的)?

1 个答案:

答案 0 :(得分:1)

在包休息中,你必须添加一个构造函数,如:

private void Button_Click_Clear(object sender, RoutedEventArgs e)
{
    foreach (var series in columnChart.Series.OfType<Series>())
    {
        series.DataContext = null;
    }
    columnChart.Series.Clear();
    dataToChart.Clear();
}

然后你必须从主函数中实例化处理程序。

否则,您必须创建一个存储全局变量的单独包。主包本身不能用于此,因为无法从其他地方访问它。