gpt4 book ai didi

go - 什么时候reflect type.Size()返回0?

转载 作者:行者123 更新时间:2023-12-02 02:13:00 25 4
gpt4 key购买 nike

我有一些使用反射来处理结构字段的通用代码。这些字段可能包含也可能不包含通过 Cgo 引用的 C 类型。

我遇到的一个问题是前面提到的那些 C 类型可能是“不完整的结构”,例如:typedef 结构未知 u;。这可能会导致稍后的代码出现 panic 。

为了避免出现这种情况,我想跳过这些字段。我发现对 reflect.Type 进行检查,其中 Size() 返回 0 正确地告诉我这一点:

if myType.Size() == 0 {
return
}

但我想知道。是否有任何其他实例 reflect.Type 将返回 0 的大小?换句话说,是否有可能跳过任何其他类型?

最佳答案

没有成员的结构的大小为零。

reflect.TypeOf(struct{}{}).Size() == 0 

Run it on the playground .

关于go - 什么时候reflect type.Size()返回0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67496131/

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