donglu9825 2016-05-01 13:50
浏览 14
已采纳

我可以在包内部创建结构以在主程序中使用吗

I was porting my npm nodule to go package and at one place i need to do this.

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"}
....
}

The main function here is basically what the user will have to write but what I was thinking if the user can use the struct I have defined inside the package in his main() function.

Why I can't use the structure outside its package?

  • 写回答

1条回答 默认 最新

  • doupixian1436 2016-05-01 13:54
    关注

    Use uppercase names for the fields. Only uppercase names are visible outside the package.

    package something
    
    type Credentials struct {
       Key string
       ResponseType  string
       Subscription string
       Locale string
    }
    
    type WwogcParams struct {
        Name string
        Value  string
    }
    

    In main:

    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"
        }
    }
    

    See Exported identifiers

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 Revit2020下载问题
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大