有没有办法避免写子模块名称

时间:2020-06-12 09:37:00

标签: go

如果我满足以下条件:

|--main.go
|--models
     |-- defenitions.go

definistions.go中,我具有以下内容:

package models
type Person struct {
     name  string
     age   uint
}

如果我想通过Person致电main.go,则必须使用它;

package main
import "models"

func main(){
     p := models.Person{name: "Karam", age: 5}
}

有没有办法避免提及models.Person{...}并只能使用Person{...}

2 个答案:

答案 0 :(得分:2)

有没有一种方法可以避免提及model.Person {...},并且只能使用Person {...}

否。

(嗯,从技术上讲这是错误的,但是要编写模型。在每种情况下(包括您自己!),人都是要做的正确的事情,并且您永远都不应使用像{ {1}}。如果您这样做,每个人都会讨厌您。)

答案 1 :(得分:1)

@Volker指出,试图将models.Person{...}表示为Person{...}实际上没有任何意义。

如果要使用的软件包名称更长,则始终可以使用导入别名,如下面的代码所示

package main
import m "models"

func main(){
     p := m.Person{name: "Karam", age: 5}
}