Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dictionary 包返回结构的映射_Dictionary_Go_Struct - Fatal编程技术网

Dictionary 包返回结构的映射

Dictionary 包返回结构的映射,dictionary,go,struct,Dictionary,Go,Struct,我已经创建了用于填充结构图的逻辑,它正在按预期工作。 现在,我想将该功能移动到一个包中。像这样 package returnperson func Person() map[string]personstruct { //do stuff return people } 我在函数Person的主体中定义了personstruct,但是,第2行抛出了以下错误: 未定义:人员结构(2,1) 我已经研究过了,但似乎没有找到解决问题的方法。 提前感谢您的帮助。这里有一些关于将某些内容提取到

我已经创建了用于填充结构图的逻辑,它正在按预期工作。 现在,我想将该功能移动到一个包中。像这样

package returnperson
func Person() map[string]personstruct {
   //do stuff
   return people
}
我在函数Person的主体中定义了personstruct,但是,第2行抛出了以下错误:

未定义:人员结构(2,1)

我已经研究过了,但似乎没有找到解决问题的方法。
提前感谢您的帮助。

这里有一些关于将某些内容提取到包中的提示:

  • 只有在包级别上带有大写字母的函数、变量和类型才能从“外部”(其他包或主)访问

  • 公共函数应该只返回公共类型

  • 在您的例子中,您说
    personstruct
    是在函数
    Person
    中定义的。如果希望它是函数的返回值,则不可能这样做。您需要在包级别定义它。还应该导出它,因为导出的函数使用它

    以下是一个示例:

    package returnperson
    
    // PersonStruct defines ...
    type PersonStruct struct {
        // fields
    }
    
    // Person does ...
    func Person() map[string]PersonStruct {
        var people = map[string]PersonStruct{}
        //do stuff
        return people
    }
    
    --编辑--

    我还建议将包本身称为
    person
    ,并将其设置为关于管理人员的内容,这意味着此包中的主要项目将是一个名为
    person
    的结构
    returnperson
    更像是一个函数名

    包还可以是关于人员列表(切片/地图)。然后,您可能想将其命名为
    personlist
    ,该包的主要主题是管理一个具有主结构的人员列表,该结构可能被称为
    personlist


    只是一些需要考虑的建议…

    这里有一些关于将某些内容提取到包中的提示:

  • 只有在包级别上带有大写字母的函数、变量和类型才能从“外部”(其他包或主)访问

  • 公共函数应该只返回公共类型

  • 在您的例子中,您说
    personstruct
    是在函数
    Person
    中定义的。如果希望它是函数的返回值,则不可能这样做。您需要在包级别定义它。还应该导出它,因为导出的函数使用它

    以下是一个示例:

    package returnperson
    
    // PersonStruct defines ...
    type PersonStruct struct {
        // fields
    }
    
    // Person does ...
    func Person() map[string]PersonStruct {
        var people = map[string]PersonStruct{}
        //do stuff
        return people
    }
    
    --编辑--

    我还建议将包本身称为
    person
    ,并将其设置为关于管理人员的内容,这意味着此包中的主要项目将是一个名为
    person
    的结构
    returnperson
    更像是一个函数名

    包还可以是关于人员列表(切片/地图)。然后,您可能想将其命名为
    personlist
    ,该包的主要主题是管理一个具有主结构的人员列表,该结构可能被称为
    personlist


    只是一些需要考虑的建议…

    请在使用package returnperson for person结构的主文件中添加代码请在使用package returnperson for person结构的主文件中添加代码