gpt4 book ai didi

arrays - 如何在 golang 中使用 type.NewArray 初始化数组?

转载 作者:数据小太阳 更新时间:2023-10-29 03:44:27 26 4
gpt4 key购买 nike

基本上,我想在 types 模块中使用 Array 类型结构,但我无法对其进行初始化。您必须将什么作为第一个参数传递给类型?

package main

import (
"fmt"
"go/types"
)

func main() {
var a *types.Array
a = types.NewArray(types.Int, 2) //error here
fmt.Println(a)
}

最佳答案

我也是新手。对我来说,这个问题看起来并不愚蠢。不幸的是,还没有人解释如何使用 NewArray。在我看来,golang 社区不是很友好我现在遇到的反对票多于真正的帮助。

顺便说一句,我参加了 Go 之旅 :) 但无论如何,我很困惑如何获取对象类型的问题通常会将您带到 reflect package(在 google 中输入类似 golang get 的内容对象的类型),它与 ​​types.Type 没有任何共同之处。我花了一些时间弄清楚如何获取 types.Type 对象,我认为对于有其他语言经验的人来说这并不明显。

因此,要使用 NewArray 方法,您需要传递一个实现了 types.Type 的对象,正如 mkopriva 指出的那样。我最终得到了

package main

import (
"fmt"
"go/types"
)

type NewType int

func (v NewType) String() string {
return string(v)
}

func (v NewType) Underlying() types.Type {
return types.Type(v)
}

func main() {
var a *types.Array
a = types.NewArray(NewType(0), 2)
fmt.Println(a)
}

使用了具有底层 int 的新类型。我想我还不了解 golang 中的某些东西,因为为了使用如此简单的东西,我不得不编写诸如 StringUnderlying 之类的无用方法,它们由于实现而无用,我看不出有什么理由被迫编写这样的代码。如果 golang 专家解释一下这些东西,我将不胜感激!

关于arrays - 如何在 golang 中使用 type.NewArray 初始化数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47681138/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com