文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

将值插入“type abc interface{}”

2024-02-10 22:04

关注

php小编小新在这里给大家介绍一种将值插入"type abc interface{}"的方法。在php中,我们经常会使用接口(interface)来定义一组规范。有时候,我们会遇到需要在接口中定义一个默认值的情况。这时候,我们可以使用trait(特性)来实现这个功能。trait是一种可以被多个类共享的代码片段,通过使用trait,我们可以在接口中定义默认值并在类中使用。这种方法简单易懂,让我们来看看具体的实现步骤吧!

问题内容

我正在尝试将值插入 type abc [][] 接口{}

我尝试过这个:

insert := &abc{{0, {"abc", "def"}}}

这会引发错误:无效的复合文字类型:接口{}

我也尝试过这个:

insert, _ := json.Marshal([][]interface{}{{0, {"abc", "def"}}})

但这也会引发错误 Invalid Composite Literal Type: interface{}

我希望输出如下:

[ [ 0, [ "abc", "def" ] ]

你能让我知道我哪里出了问题以及如何解决这个问题吗?

解决方法

abc 的类型允许任何类型,但是需要定义您放入其中的内容的类型。您没有定义 {"abc", "def"} 的类型,并且无法实例化接口文字(接口不会告诉编译器有关字段的任何信息)。您可以拥有匿名结构,但仍然需要定义它们。

让我们通过示例逐步了解您所拥有的内容:

x := &abc{}

创建具有零条目的外部数组。

x := &abc{{}, {}, {}}

使用 3 个空的内部数组创建外部数组。

x := &abc{{0, "abc"}}

一个外部数组,带有一个内部数组,有 2 个值:0"abc"

x := &abc{{0, {"abc", "def"}}

一个外部数组,带有一个内部数组,有 2 个值:0 和......什么?这是一个对象字面量,但没有显式类型,也没有语法上正确的隐式类型(隐式地期望 interface{} ,无法直接实例化),这是一个错误。

type pairofstrings struct {
  a string
  b string
}

x := &abc{{0, pairofstrings{"abc", "def"}}}

您现在已经输入了有问题的结构。

x := &abc{{0, struct {
  a string
  b string
}{"abc", "def"}}}

匿名结构也是一种丑陋但有效的方法。

x := &abc{{0, []string{"abc", "def"}}}

似乎是最接近你想要的东西。

规则是 interface{} 可以保存任何定义的东西。它不等同于 c# 的 dynamic 对象。

以上就是将值插入“type abc interface{}”的详细内容,更多请关注编程网其它相关文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯