2017-02-19 7 views
-4

私はGolangを初めて使っていて、構造体について頭を抱えようとしています。 1つの関数でどのように作成して作成し、別の関数で使用するかはわかりません。構造体をある関数で別の関数で使用するように作成する

ここに私のコードです。事前に

ファイル1 main.go

package main 

import (
    "github.com/asolopovas/docker_valet/modules" 
    "fmt" 
) 
func main { 
    fl := dockervalet.GetFlags() 
    fmt.Pringln(fl.user) // returns fl.user undefined 
} 

ファイル2 flags.go

package dockervalet 

import (
    "flag" 
    "fmt" 
) 

type Flags struct { 
    user  string 
} 

func GetFlags() Flags { 
    var userFlag string 
    flag.StringVar(&userFlag, "u", "", "") 
    flag.StringVar(&userFlag, "user", "", "") 
    flag.Parse() 

    fl := Flags{ 
     user: userFlag, 
    } 

    fmt.Println(fl.user) // works as expected 

    return fl 

} 

感謝。

+0

構造体は、他の機能と共有することが_cannot_。パッケージレベルで定義する必要があります。しかし、あなたのコードは、あなたがそれらの事のどちらかをしていることを示していません。だから私は本当にあなたが何を求めているのか分かりません。 – Flimzy

答えて

0

私はそれを理解したと思います。私が最初の大文字を使ってこの戻り構造体に別の関数でアクセスできるようにしなければならないという問題の洗濯。

ファイル1 main.go

func main { 
    fl := GetFlags() 
    fmt.Pringln(fl.User) 
} 

ファイル関数内で定義された2 flags.go

type Flags struct { 
    User  string 
} 

func GetFlags() Flags { 
    var userFlag string 
    flag.StringVar(&userFlag, "u", "", "") 
    flag.StringVar(&userFlag, "user", "", "") 
    flag.Parse() 

    fl := Flags{ 
     User: userFlag, 
    } 

    fmt.Println(fl.user) // works as expected 

    return fl 

} 
関連する問題