为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Golang 导出导入

使用 Golang 导出导入

Go
桃花长相依 2023-04-24 17:06:00
不确定这对 Golang 来说是否不可能。使用 Node.js,我会这样做:import * as person from './person';export {person};使用 Golang 我有models.go:package modelsimport (    "huru/models/person")是否可以从这个 models.go 文件中导出 person,在 person 命名空间中,比如 TypeScript/node.js?
查看完整描述

4 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

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

不。


查看完整回答
反对 回复 2023-04-24
?
暮色呼如

TA贡献1853条经验 获得超9个赞

你不能只通过一个完整的包。您可以通过基于它们创建自己的类型来传递不同的类型。如果有一个person.Person:


package models


import (

    "huru/models/person"

)


type Person person.Person


//or


type EmbeddedPerson struct{

    person.Person

    additional string

}

这具有允许您添加自己的功能的优点


func (p Person) CustomFunc() {}

这是一个游乐场链接,显示了其中的一些细微差别:https://play.golang.org/p/1aLOcmsXHV2


查看完整回答
反对 回复 2023-04-24
?
不负相思意

TA贡献1777条经验 获得超10个赞

这里的 golang 概念有点不同。在命名空间范围内可用的 golang 结构。


就像每个例子


package models


// struct name should starts with Capital letter to export

type Person struct {

    Name string

    age int

}

该Person结构将在同一命名空间下的所有文件中可用(例如。models)。您不需要导入它。


但是如果你想在models命名空间之外访问,你必须导入包models并Person使用它访问对象。


前任。


package anotherpackage


import (

    "<path to models>/models"

)


var perObj models.Person  // here is how you can access the Person struct

如果您仍然不清楚,请告诉我。


查看完整回答
反对 回复 2023-04-24
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

不。


您可以这样使用,例如自定义日志


package customLog


import "log"


func Print(args ...interface{}) {

  log.Print(args)

}

package example


func some() {

  customLog.Print("hi babay")

}


查看完整回答
反对 回复 2023-04-24
  • 4 回答
  • 0 关注
  • 156 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信