猿问

使用 Golang 导出导入

不确定这对 Golang 来说是否不可能。使用 Node.js,我会这样做:


import * as person from './person';

export {person};

使用 Golang 我有models.go:


package models


import (

    "huru/models/person"

)

是否可以从这个 models.go 文件中导出 person,在 person 命名空间中,比如 TypeScript/node.js?


桃花长相依
浏览 157回答 4
4回答

茅侃侃

[I] 是否可以从这个 models.go 文件导出 person,在 person 命名空间中,比如 TypeScript/node.js?不。

暮色呼如

你不能只通过一个完整的包。您可以通过基于它们创建自己的类型来传递不同的类型。如果有一个person.Person:package modelsimport (    "huru/models/person")type Person person.Person//ortype EmbeddedPerson struct{    person.Person    additional string}这具有允许您添加自己的功能的优点func (p Person) CustomFunc() {}这是一个游乐场链接,显示了其中的一些细微差别:https://play.golang.org/p/1aLOcmsXHV2

不负相思意

这里的 golang 概念有点不同。在命名空间范围内可用的 golang 结构。就像每个例子package models// struct name should starts with Capital letter to exporttype Person struct {&nbsp; &nbsp; Name string&nbsp; &nbsp; age int}该Person结构将在同一命名空间下的所有文件中可用(例如。models)。您不需要导入它。但是如果你想在models命名空间之外访问,你必须导入包models并Person使用它访问对象。前任。package anotherpackageimport (&nbsp; &nbsp; "<path to models>/models")var perObj models.Person&nbsp; // here is how you can access the Person struct如果您仍然不清楚,请告诉我。

慕桂英4014372

不。您可以这样使用,例如自定义日志package customLogimport "log"func Print(args ...interface{}) {&nbsp; log.Print(args)}package examplefunc some() {&nbsp; customLog.Print("hi babay")}
随时随地看视频慕课网APP

相关分类

Go
我要回答