go - 如何从 Go 中的另一个包导入结构

标签 go struct import

我正在尝试将以下结构导入到 Golang 中的单独包中

package models
type Category struct {
    Title string
    Description string
    Parent *Category
    ParentId int
}

进入package controllers如下

import(
"website.com/Owner/blog/app/models"
)
func (c Category) Update(){
   //do something here
}

但是,我收到错误 unresolved type Category 我应该如何使用 Go 将结构导入到单独的包中?

最佳答案

您需要完全限定您的名称:不要使用 Category,而使用 models.Categorydoc应该让你开始。你可以这样做:

import "fmt"

func main() {
    fmt.Println("Hello")
}

或者:

import f "fmt"

func main() {
    f.Println("Hello")
}

或者完全放弃限定条件(但是,这被认为是糟糕的风格:一眼就能看出某些结构或函数的来源在查看代码时非常方便):

import . "fmt"

func main() {
    // Where does that come from ? Hard to know without 
    // intimate knowledge of the package
    Println("Hello")
}

您可以做的最后一件事是“typedef”您的远程结构以便于在本地使用:

import "website.com/Owner/blog/app/models"

type Category models.Category

但是请注意,它会创建一个 new type , 尽管具有相同的底层类型。

关于go - 如何从 Go 中的另一个包导入结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39491435/

相关文章:

sql - Amazon RDS with/SQL Server 不允许从 CSV 源批量插入

c# - MS Access 互操作性 - 数据导入

go - 通过 go exec.cmd 运行 SCP

pointers - 如何使用golang将结构的方法作为参数传递给另一个函数

c++ - 结构数组的动态分配

c - 通过无效指针获取结构成员时如何更改编译器行为

Python 2.7 运行 py 时找不到模块。但可以在终端中找到模块

为所有处理程序添加 gzip 压缩

go - 如何编写一个以字符串或错误作为参数的泛型函数?

Ruby 与 Go/sha256 hmac base64 编码字符串不匹配