方法

GLibVariantBuilderinit

since: 2.24

声明 [src]

void
g_variant_builder_init (
  GVariantBuilder* builder,
  const GVariantType* type
)

描述 [src]

初始化一个 GVariantBuilder 结构体。

type 不能为 NULL。它指定要构造的容器类型。它可以是不定类型,如 G_VARIANT_TYPE_ARRAY,也可以是确定类型,如 “as” 或 “(ii)”。可能可以构造数组、元组、字典条目和变体类型值。

如果使用静态类型,如 G_VARIANT_TYPE_* 常量之一或 G_VARIANT_TYPE ("(ii)") 宏,则使用 g_variant_builder_init_static() 而不是 g_variant_builder_init() 更高效。

在初始化构建器后,使用 g_variant_builder_add_value()g_variant_builder_add() 添加值。

在添加所有子值之后,g_variant_builder_end() 释放与构建器相关联的内存并返回创建的 GVariant

此函数完全忽略 builder 的先前内容。一方面,这意味着可以传递完全未初始化的内存。另一方面,这也意味着如果您在现有的 GVariantBuilder 上初始化,您需要先调用 g_variant_builder_clear() 以防止内存泄露。

您不得在用此函数初始化的 GVariantBuilder 上调用 g_variant_builder_ref()g_variant_builder_unref()。如果您在自己的代码控制之外传递了 GVariantBuilder 的引用,则应该假设接收该引用的人可能会尝试使用引用计数;您应该使用 g_variant_builder_new() 而不是此函数。

Available since: 2.24

此方法不直接对语言绑定可用。

参数

type

类型: GVariantType

容器类型。

数据由方法的调用者拥有。