2017-02-05 7 views
1

私は主な関数を持っています。ここで変数、クライアントを開始します。例:他のパッケージの構造体にオブジェクトを渡します。

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() 

} 

だから私の質問は、私は私のパッケージに(メインのうちの)クライアントを使うのですか、である:私のパッケージには、このようになりますか?そして、あなたは、main関数からハンドラをインスタンス化する必要があり

func NewAssetHandler(mc my.Client) AssetHandler { 
    return AssetHandler{mc} 
} 

:パッケージで

答えて

1

はあなたのようなコンストラクタ関数を追加する必要が休みます。

それ以外の場合は、グローバル変数を格納する別のパッケージを作成する必要があります。メインパッケージ自体は、他のどこからでもアクセスできないため、このために使用することはできません。

関連する問題