如何在golang中嵌入其他包的结构

2024-04-21

我知道如何在同一包中的结构中嵌入其他结构,但是如何嵌入其他包的结构?

dog.go

package dog

import "fmt"

type Dog struct {
    Name string
}

func (this *Dog) callMyName() {
    fmt.Printf("Dog my name is %q\n", this.Name)
}

main.go

package main

import "/path/to/dog"

type BDog struct {
    dog.Dog
    name string
}

func main() {
    b := new(BDog)
    b.Name = "this is a Dog name"
    b.name = "this is a BDog name"
    b.callMyName()
}

当我运行 main.go 时,它告诉我一个错误:

./main.go:14: b.callMyName undefined (type *BDog has no field or method callMyName)

@simon_xia 是对的,看起来像你might对 Go 有点陌生。

首先欢迎来到社区!!

现在扩展一下他的评论...Go 没有为成员/方法提供公共/私有范围,而是具有以下概念:出口 https://tour.golang.org/basics/3。因此,如果您想允许从另一个包访问某个方法,只需将该方法的签名大写即可:)

大部分的basicGo 在某种程度上满足了 OOP 的特性,但理解这一点很重要Go 不是面向对象的语言 https://golang.org/doc/faq#Is_Go_an_object-oriented_language.

I'd 强烈推荐努力完成整个过程围棋之旅 https://tour.golang.org/list因为它触及了导出的概念以及 Go 语言的许多其他关键功能。整个行程一个下午就能结束,确实如此a lot几年前让我快速掌握这门语言。

如果在那之后你仍然渴望更多,我发现举例说明 https://gobyexample.com成为深入研究某些主要主题的绝佳参考点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在golang中嵌入其他包的结构 的相关文章

随机推荐

  • 如何将可观察的响应投射到本地对象

    在当前的 Angular 6 应用程序中 有一个订阅 observable 来自 RESTful 服务的响应 this activatedRoute data subscribe bag gt console log bag this ba
  • Android发送大量短信

    我有一个应用程序 它会向中央服务器发送大量短信 每个用户每天可能会发送约 300 个文本 SMS 消息被用作网络层 因为 SMS 几乎无处不在 而移动互联网却不然 该应用程序旨在供许多移动互联网尚未普及的第三世界国家使用 当我达到 100
  • 最大限度地降低重新分配人员的成本

    我有属于不同类别的个人 他们位于不同的地方 区 这些人口预计将从population值低于 到demand value population and demand by category and zone lt tibble tribble
  • jQuery 选择更改显示/隐藏 div 事件

    我正在尝试创建一个表单 当选择选择元素 parcel 时 它将显示一个 div 但当未选择它时 我想隐藏该 div 这是我目前的标记 到目前为止 这是我的 HTML div class row Type div
  • 从 AOSP 编译电子邮件应用程序

    我想向 AOSP 电子邮件应用程序添加一些不再受支持的功能 所以我克隆了存储库here https github com android platform packages apps email 这是一个 Eclipse 项目 并将其迁移到
  • C++:防止多个函数同时执行

    我问这个问题是因为mutex我发现文档处理单个函数 我认为我的情况很常见 我的问题是以下代码是否不仅会阻止func1 OR func2 并行执行多次 但它是否也会阻止func1 AND func2 同时执行 include
  • 在 UITableView 标头中包含的 UIImageView 上设置accessibilityLabel

    我有一个UITableView我内置的loadView 我在做的事情之一loadView是创建一个UIView充当表头并填充UIImageView进去 图像视图包含作为风格化标题的图像 因此我想为 VoiceOver 用户添加辅助功能标签
  • 不要让 IE 选择并复制使用 jQuery .hide() 隐藏的表行

    我在数据表顶部有一个 jQuery 即时搜索栏 所有符合搜索条件的记录都将可见 row show 其余的都是隐藏的 row hide Problem 搜索后 我使用鼠标从搜索结果中选择 复制行列表并将其粘贴到 Excel 中 隐藏 记录也会
  • 使用 CSS 分布内联元素

    有没有一种简单的方法可以使用 CSS 在父块容器中分发内联元素 将边距设置为自动不起作用 因为内联元素之间的边距设置为 0 而且我不想弄乱百分比 因为内容是动态的 特别是 我在段落 p 中有几个锚元素 a 跨越其容器的 80 我正在寻找一种
  • 如何获取TextView的行距?

    有没有办法获得行间距TextView in Android 我尝试寻找fontMetrics of the Paint of the TextView并这样做 tv1 getPaint getFontMetrics pfm float fo
  • 如何在Android中加载大图像并避免内存不足错误?

    我正在开发一个使用大图像的应用程序 1390 870 150kb 50kb 我在点击触发器 ImageView 时添加图像 在某个时刻我遇到内存不足错误 java lang OutOfMemoryError E AndroidRuntime
  • 何时应该处理 ManualResetEvent?

    我正在使用一个使用 ManualResetEvent 同步线程的应用程序 FxCop 让我处理掉这些物品 我发现以下讨论告诉我同样的事情 我需要 Dispose 或 Close EventWaitHandle 吗 https stackov
  • 在指令链接功能中动态添加 ng-click

    我正在尝试创建一个指令 允许将元素定义为可点击或不可点击 并且定义如下
  • 我无法使用 C# 代码连接到 SQL Server 数据库 [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我试图创建注册表单 但是当我运行我的项目时收到此错误消息 抛出异常 System Data dll 中的 System
  • 启动时在 iOS 中启动位置感知后台服务

    应用程序可以注册重大位置变化 推荐 重大变化的定位服务提供了 低功耗方式接收位置数据 强烈推荐用于 不需要高精度位置数据的应用 有了这个 服务 仅当用户位置时才会生成位置更新 发生显着变化 因此 它非常适合社交应用或 为用户提供非关键的 位
  • 关于面向块的步骤与现实的 Spring Batch 文档?

    On the 文档 http docs spring io spring batch reference html configureStep htmlSpring Batch 的配置步骤清晰地描述了读取过程和写入是如何执行的 read p
  • GWT:在另一个模块内调用RPC服务

    我有一个模块B 它继承了模块A 当我从A内部调用RPC服务时 它们工作正常 但是当我在B中调用A的服务时 RPC调用总是失败 我错过了什么吗 预先感谢您的任何帮助 我在这里找到了我的问题的答案 http blog cloudglow com
  • 将谷歌地图标记颜色更改为我选择的颜色

    无论如何 是否可以从默认的红色标记颜色更改为我选择的十六进制颜色 我一直在寻找堆栈溢出 但似乎没有找到答案 这是我到目前为止所拥有的 var marker new google maps Marker position myLatLng l
  • 自动释放对象的保留/复制

    我想确保我在这里正确理解内存管理 是否有任何特殊原因要在这里使用一种 allocateCurrentDate 方法而不是另一种方法 另外 所有这些都不会导致内存泄漏 对吗 在 h 中我们有 NSDate currentDate1 NSDat
  • 如何在golang中嵌入其他包的结构

    我知道如何在同一包中的结构中嵌入其他结构 但是如何嵌入其他包的结构 dog go package dog import fmt type Dog struct Name string func this Dog callMyName fmt