Go 内置函数是否使用泛型?

2023-12-21

看看 Go 的内置函数,我才意识到它们不使用接口,而是使用神奇的“类型”。

https://golang.org/src/builtin/builtin.go https://golang.org/src/builtin/builtin.go

那么,在不使用泛型的情况下,这到底是如何可能的呢?我如何编写一个具有类似于append(接受任何类型的数组)而没有接口的签名的函数?


您不可能创建此类函数。具有这种通用的、神奇的“基因”的函数是由语言规范 https://golang.org/ref/spec,在部分中列出预声明标识符 https://golang.org/ref/spec#Predeclared_identifiers.

引用自有效执行: 附加: https://golang.org/doc/effective_go.html#append

的签名append[...] 概括地说,它是这样的:

func append(slice []T, elements ...T) []T

where T是任何给定类型的占位符。实际上,您无法在 Go 中编写类型为T由调用者确定。这就是为什么append是内置的:它需要编译器的支持。

查看相关问题:

通过变量访问 Go 函数 https://stackoverflow.com/questions/39073756/go-functions-accessed-through-variables/39073811#39073811

在普通函数上返回 Golang 中类似“ok”的映射 https://stackoverflow.com/questions/28487036/return-map-like-ok-in-golang-on-normal-functions/28487270#28487270

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

Go 内置函数是否使用泛型? 的相关文章

随机推荐

  • 如何使 LWP::UserAgent 看起来像另一个浏览器?

    这是我关于 SO 的第一篇文章 所以要温柔 我什至不确定这是否属于这里 但就在这里 我想访问我的一个个人帐户上的一些信息 该网站写得不好 需要我手动输入我想要的信息的日期 这确实是一种痛苦 我一直在寻找一个学习更多 Perl 的借口 所以我
  • 带有参数的量角器“addMockModule()”在 Firefox 中无法正确处理结构化数据

    我最近阅读了有关这些量角器问题的解决方案 无法轻松地将上下文传递给addMockModule 695 https github com angular protractor issues 695 feat addMockModule 添加第
  • Angular ng-click 不适用于 $compile

    我有类似于下面的代码来触发clickAngular 应用程序中的事件 为什么事件没有触发 var app angular module myApp app directive myTop function compile return re
  • Scala问题可选构造函数

    想象一下这段简单的代码 class Constructor var string String def this s String this string s def testMethod println string testMethod
  • 如何在xamarin中浏览sqlite数据?

    我的应用程序中有一个列表视图 一些数据在填充列表视图之前保存到数据库中 我的问题是看不到数据 以及如何验证数据是否存储在数据库中 我给出了 Visual Studio 2015 的解决方案 适用于 Xamarin 找到上图中提到的数据库文件
  • Twitter4j:调用 getFollowersIDs 时出现不一致的身份验证错误

    我正在使用 Twitter4j 版本 3 0 3 我正在尝试提取关注者 ID 并使用 OAuth 我已经使用 Twitter4j 多年 并且对该框架比较有经验 然而 奇怪的事情发生了 我的程序将运行良好 然后间歇性地抛出以下堆栈跟踪 Exc
  • 如何从照片自定义相册中获取图像,iOS SDK?

    I m working on an iOS app in which I need gallery view like Instagram I have added gallery View camera View and video Vi
  • 使用命令行参数运行 webpack

    我一直在尝试将 args 从命令行传递到 webpack 插件 我可以通过 process argv 访问参数 但之后 wwebpack 失败并出现错误 未找到条目模块中的错误 错误 无法解析模块 看来 webpack 将 args 视为它
  • 滑动窗口操作的 Numpy 矢量化

    我有以下 numpy 数组 arr 1 1 2 3 4 5 6 3 X 2 arr 2 0 5 0 6 0 7 0 8 0 9 1 0 1 1 1 2 1 3 1 4 5 X 2 arr 1显然是一个3 X 2数组 而arr 2 is a
  • 实体框架对导航属性的约束

    我想限制导航属性返回的模型 例如 我正在使用AuditInfo模型来记录模型的活动 一旦模型被删除DeletedBy and Deleted属性已设置 然而 由于数据库中没有真正 删除 任何内容 因此这些模型仍将填充在其他模型引用的导航属性
  • 如何在 Google Apps 脚本中检查拼写和语法

    如何删除 Google 表格中包含拼写或语法错误的所有行 我更喜欢通过 Google Apps 脚本来完成此操作 我考虑过的 使用 工具 菜单中的拼写检查器太慢了 因为我已经 几万行 我发现了this https stackoverflow
  • ProgramData 和 AppData 有什么区别?

    我需要为我的程序存储一些特定于用户的配置数据 Application Data AppData 在用户目录中 和 ProgramData 在系统驱动器的根目录中 似乎都是放置它的合理位置 程序数据和应用程序数据有什么区别 我应该使用哪一个
  • 查找具有重复值的字典键

    some dict firstname Albert nickname Albert surname Likins username Angel 我想返回我的字典的键 其中它们的值存在不止一次 有人可以告诉我如何实现这一点吗 a list
  • select()系统调用中nfds=0时发生了什么

    我正在 Linux 上调试一个应用程序 它有几个线程定期调用select系统调用 strace shows select 0 NULL NULL NULL 1 342414 So nfds 0 我认为 nfds 是任何集合中出现的最高文件描
  • Chrome 自动完成多个电子邮件字段

    我的表单上有 3 个输入框 Google Chrome 提供自动完成功能 因此 如果您单击其中任何一个或开始输入内容 您将看到 Chrome 选项列表 但当您在这些自动完成选项之间上下移动时 3 个输入框将填充值 而不是当前的文本框 htt
  • Android:本地化标准文本,例如确定、取消和 GPS 未激活 - 例如?

    我希望本地化我的应用程序 当然 我需要本地化特定于我的应用程序的文本 但是标准文本是否存在一些标准资源 例如 确定 和 取消 GPS 未激活等 或者我必须完全本地化所有内容吗 android 是否附带了一些全局文本资源 我如何访问它 提前致
  • C 是否有与 C++ 中的 std::less 等效的东西?

    我最近正在回答一个关于 do 的未定义行为的问题p lt q在C中当p and q是指向不同对象 数组的指针 这让我想到 C 具有相同的 未定义的 行为 lt 在这种情况下 还提供了标准库模板std less保证返回与 lt 当指针可以比较
  • $PATH 中的波形符字符 ('~')? (例如:PATH='~/bin':/usr/bin:/bin)

    根据我的测试 bash很高兴 in PATH but usr bin which不是 是否有关于此的任何标准 如 POSIX Example STEP 100 echo BASH VERSION 4 4 12 1 release STEP
  • 如何在Windows中创建虚拟Com1端口?

    我正在开发一个在袖珍电脑上运行的移动应用程序 我们有一个移动打印机和刷卡器 使用 com1 发送和获取信息 我正在使用设备模拟器 并且想在没有打印机的情况下进行测试 如何创建虚拟 com1 端口以进行读取 我尝试了 com0com 但设备模
  • Go 内置函数是否使用泛型?

    看看 Go 的内置函数 我才意识到它们不使用接口 而是使用神奇的 类型 https golang org src builtin builtin go https golang org src builtin builtin go 那么 在