方法

GLibVariantget_child_value

自 2.24

声明 [src]

GVariant*
g_variant_get_child_value (
  GVariant* value,
  gsize index_
)

描述 [src]

GVariant 实例的容器中读取子项。这包括变体、可能值、数组、元组和字典条目。在任何其他类型的 GVariant 上调用此函数将是错误。

如果 index_ 大于容器中子项的数量,则是一个错误。详见 g_variant_n_children()。

返回值从不为浮点数。您应在使用完毕后使用 g_variant_unref() 释放它。

请注意,从返回的子对象借用的值在释放子对象后可能已不再有效,即使您仍然保持对 value 的引用,如果在此函数调用时 value 还未被序列化。为避免这种情况,您可以通过调用 g_variant_get_data() 并可选地忽略返回值来对 value 进行序列化。

对于深度嵌套的值,可能存在实现特定的限制,这会导致单位元组作为子值返回,而不是进一步嵌套的子值。为了保证 GVariant 至少可以处理最多 64 层的嵌套。

此函数是 O(1)。

自版本 2.24 以来提供。

参数

index_

类型:  gsize

要获取的子对象的索引。

返回值

类型:  GVariant

指定索引处的子对象。

该方法调用者负责获取返回的数据的所有权,并负责释放它。