2016-05-01 9 views
1

npmのnoduleをパッケージに移植していましたが、これを行う必要があります。ここパッケージ内に構造体を作成して、メインプログラムの外側で使用することができます

type Credentials struct { 
    key string 
    responseType string 
    subscription string 
    locale string 
} 

type WwogcParams struct { 
    name string 
    value string 
} 
func main() { 
    param1 := WwogcParams{"q","Delhi"} 
    wwogc := []WwogcParams{param1} 

    credentials := Credentials{key: "keykeykle",responseType: "json",subscription: "premium",locale: "EN"} 
.... 
} 

主な機能は、ユーザーが記述する必要がありますどのような基本的であるが、ユーザが、私は彼のmain()関数では、パッケージ内で定義されている構造体を使用することができればどのような私が考えていました。

なぜ私はそのパッケージの外で構造を使用できないのですか?

答えて

2

フィールドには大文字の名前を使用してください。大文字の名前のみがパッケージの外側に表示されます。メインで

package something 

type Credentials struct { 
    Key string 
    ResponseType string 
    Subscription string 
    Locale string 
} 

type WwogcParams struct { 
    Name string 
    Value string 
} 

:私は "名前" 私は パッケージメイン 輸入 "wwo" //私のものは何でもを使用することができますし、 "名前" を変更した場合

package main 

import (
    "something" 
) 

func main() { 
    param1 := something.WwogcParams {"q","Delhi"} 
    wwogc := []something.WwogcParams {param1} 
    credentials := something.Credentials { 
     Key: "keykeykle", 
     ResponseType: "json", 
     Subscription: "premium", 
     Locale: "EN" 
    } 
} 

Exported identifiers

+0

意味を参照してください。パッケージ名 wwo.WwogcParams {"q"、 "delhi"} –

+0

。したがって、Foo struct {abc int}型の場合、Fooは表示されますが、abcは表示されません。 Foo struct {Abc int}と入力してください。両方ともそうです。このため、GFA(https://golang.org/pkg/net/http/#ServeMux)で「フィルタリングされたフィールドと非公開のフィールドが含まれています」が表示されます。タイトルをクリックし、https://golang.org/src/net/http/server.go?s=53067:53192#L1780にアクセスしてください。mu、m、およびhostsフィールドが表示されます。これらのフィールドはすべて非公開です –

+0

ありがとうございます、私は現在これを試していて、すぐに受け入れます。 –